diff --git a/.devtoolset-3-gcc.metadata b/.devtoolset-3-gcc.metadata
new file mode 100644
index 0000000..33ad973
--- /dev/null
+++ b/.devtoolset-3-gcc.metadata
@@ -0,0 +1,5 @@
+2dc70313e8e2c6610b856d627bce9c9c3f848077 SOURCES/cloog-0.18.1.tar.gz
+7f4348418dc3efefd357b32a2b5c8010211ab284 SOURCES/doxygen-1.8.0.src.tar.gz
+007873489c5c44de105b665fe22f1bd481ed24b5 SOURCES/gcc-4.9.1-20140922.tar.bz2
+ca98a91e35fb3ded10d080342065919764d6f928 SOURCES/isl-0.12.2.tar.bz2
+5ef03ca7aee134fe7dfecb6c9d048799f0810278 SOURCES/mpc-0.8.1.tar.gz
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3b7b746
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+SOURCES/cloog-0.18.1.tar.gz
+SOURCES/doxygen-1.8.0.src.tar.gz
+SOURCES/gcc-4.9.1-20140922.tar.bz2
+SOURCES/isl-0.12.2.tar.bz2
+SOURCES/mpc-0.8.1.tar.gz
diff --git a/README.md b/README.md
deleted file mode 100644
index 98f42b4..0000000
--- a/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-The master branch has no content
-
-Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6
-If you find this file in a distro specific branch, it means that no content has been checked in yet
diff --git a/SOURCES/cloog-0.18.1-ppc64le-config.patch b/SOURCES/cloog-0.18.1-ppc64le-config.patch
new file mode 100644
index 0000000..a280e20
--- /dev/null
+++ b/SOURCES/cloog-0.18.1-ppc64le-config.patch
@@ -0,0 +1,717 @@
+--- cloog-0.18.1/m4/libtool.m4.jj 2013-10-11 09:27:45.000000000 +0200
++++ cloog-0.18.1/m4/libtool.m4 2014-04-11 18:24:56.607493726 +0200
+@@ -1312,7 +1312,7 @@ ia64-*-hpux*)
+ rm -rf conftest*
+ ;;
+
+-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
++x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+@@ -1333,7 +1333,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*
+ ;;
+ esac
+ ;;
+- ppc64-*linux*|powerpc64-*linux*)
++ powerpc64le-*linux*)
++ LD="${LD-ld} -m elf32lppclinux"
++ ;;
++ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+@@ -1352,7 +1355,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+- ppc*-*linux*|powerpc*-*linux*)
++ powerpcle-*linux*)
++ LD="${LD-ld} -m elf64lppc"
++ ;;
++ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+--- cloog-0.18.1/autoconf/config.sub.jj 2013-10-11 09:27:45.000000000 +0200
++++ cloog-0.18.1/autoconf/config.sub 2014-04-11 18:24:56.608493721 +0200
+@@ -1,24 +1,18 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+-# 2011, 2012 Free Software Foundation, Inc.
+-
+-timestamp='2012-04-18'
+-
+-# This file is (in principle) common to ALL GNU software.
+-# The presence of a machine in this file suggests that SOME GNU software
+-# can handle that machine. It does not imply ALL GNU software can.
+-#
+-# This file 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 2 of the License, or
++# Copyright 1992-2013 Free Software Foundation, Inc.
++
++timestamp='2013-10-01'
++
++# This file 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 of the License, or
+ # (at your option) any later version.
+ #
+-# This program 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.
++# This program 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 this program; if not, see .
+@@ -26,11 +20,12 @@ timestamp='2012-04-18'
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+-# the same distribution terms that you use for the rest of that program.
++# the same distribution terms that you use for the rest of that
++# program. This Exception is an additional permission under section 7
++# of the GNU General Public License, version 3 ("GPLv3").
+
+
+-# Please send patches to . Submit a context
+-# diff and a properly formatted GNU ChangeLog entry.
++# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+ #
+ # Configuration subroutine to validate and canonicalize a configuration type.
+ # Supply the specified configuration type as an argument.
+@@ -73,9 +68,7 @@ Report bugs and patches to and include a ChangeLog
+-# entry.
++# the same distribution terms that you use for the rest of that
++# program. This Exception is an additional permission under section 7
++# of the GNU General Public License, version 3 ("GPLv3").
+ #
+-# This script attempts to guess a canonical system name similar to
+-# config.sub. If it succeeds, it prints the system name on stdout, and
+-# exits with 0. Otherwise, it exits with 1.
++# Originally written by Per Bothner.
+ #
+ # You can get the latest version of this script from:
+ # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
++#
++# Please send patches with a ChangeLog entry to config-patches@gnu.org.
++
+
+ me=`echo "$0" | sed -e 's,.*/,,'`
+
+@@ -54,9 +50,7 @@ version="\
+ GNU config.guess ($timestamp)
+
+ Originally written by Per Bothner.
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+-Free Software Foundation, Inc.
++Copyright 1992-2013 Free Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -138,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` |
+ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
++case "${UNAME_SYSTEM}" in
++Linux|GNU|GNU/*)
++ # If the system lacks a compiler, then just pick glibc.
++ # We could probably try harder.
++ LIBC=gnu
++
++ eval $set_cc_for_build
++ cat <<-EOF > $dummy.c
++ #include
++ #if defined(__UCLIBC__)
++ LIBC=uclibc
++ #elif defined(__dietlibc__)
++ LIBC=dietlibc
++ #else
++ LIBC=gnu
++ #endif
++ EOF
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
++ ;;
++esac
++
+ # Note: order is significant - the case branches are not exclusive.
+
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+@@ -200,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit ;;
++ *:Bitrig:*:*)
++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
++ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+@@ -302,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+- arm:riscos:*:*|arm:RISCOS:*:*)
++ arm*:riscos:*:*|arm*:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+@@ -801,6 +820,9 @@ EOF
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit ;;
++ *:MINGW64*:*)
++ echo ${UNAME_MACHINE}-pc-mingw64
++ exit ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
+@@ -852,21 +874,21 @@ EOF
+ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit ;;
+ aarch64:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+@@ -879,59 +901,54 @@ EOF
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
++ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ arc:Linux:*:* | arceb:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arm*:Linux:*:*)
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ else
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ else
+- echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ cris:Linux:*:*)
+- echo ${UNAME_MACHINE}-axis-linux-gnu
++ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
+ crisv32:Linux:*:*)
+- echo ${UNAME_MACHINE}-axis-linux-gnu
++ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
+ frv:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ hexagon:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:Linux:*:*)
+- LIBC=gnu
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
+- #ifdef __dietlibc__
+- LIBC=dietlibc
+- #endif
+-EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
++ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ exit ;;
+ ia64:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ m32r*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ m68*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+@@ -950,54 +967,63 @@ EOF
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ ;;
++ or1k:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
+ or32:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ padre:Linux:*:*)
+- echo sparc-unknown-linux-gnu
++ echo sparc-unknown-linux-${LIBC}
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+- echo hppa64-unknown-linux-gnu
++ echo hppa64-unknown-linux-${LIBC}
+ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+- PA7*) echo hppa1.1-unknown-linux-gnu ;;
+- PA8*) echo hppa2.0-unknown-linux-gnu ;;
+- *) echo hppa-unknown-linux-gnu ;;
++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
++ *) echo hppa-unknown-linux-${LIBC} ;;
+ esac
+ exit ;;
+ ppc64:Linux:*:*)
+- echo powerpc64-unknown-linux-gnu
++ echo powerpc64-unknown-linux-${LIBC}
+ exit ;;
+ ppc:Linux:*:*)
+- echo powerpc-unknown-linux-gnu
++ echo powerpc-unknown-linux-${LIBC}
++ exit ;;
++ ppc64le:Linux:*:*)
++ echo powerpc64le-unknown-linux-${LIBC}
++ exit ;;
++ ppcle:Linux:*:*)
++ echo powerpcle-unknown-linux-${LIBC}
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+- echo ${UNAME_MACHINE}-ibm-linux
++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ exit ;;
+ sh64*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ sh*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ tile*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ vax:Linux:*:*)
+- echo ${UNAME_MACHINE}-dec-linux-gnu
++ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ exit ;;
+ x86_64:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ xtensa*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+@@ -1201,6 +1227,9 @@ EOF
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
++ x86_64:Haiku:*:*)
++ echo x86_64-unknown-haiku
++ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
+@@ -1227,19 +1256,21 @@ EOF
+ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+- case $UNAME_PROCESSOR in
+- i386)
+- eval $set_cc_for_build
+- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+- grep IS_64BIT_ARCH >/dev/null
+- then
+- UNAME_PROCESSOR="x86_64"
+- fi
+- fi ;;
+- unknown) UNAME_PROCESSOR=powerpc ;;
+- esac
++ eval $set_cc_for_build
++ if test "$UNAME_PROCESSOR" = unknown ; then
++ UNAME_PROCESSOR=powerpc
++ fi
++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_64BIT_ARCH >/dev/null
++ then
++ case $UNAME_PROCESSOR in
++ i386) UNAME_PROCESSOR=x86_64 ;;
++ powerpc) UNAME_PROCESSOR=powerpc64 ;;
++ esac
++ fi
++ fi
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+@@ -1256,7 +1287,7 @@ EOF
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+- NSE-?:NONSTOP_KERNEL:*:*)
++ NSE-*:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+@@ -1330,9 +1361,6 @@ EOF
+ exit ;;
+ esac
+
+-#echo '(No uname command or uname output not recognized.)' 1>&2
+-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+-
+ eval $set_cc_for_build
+ cat >$dummy.c < conftest.$ac_ext
+@@ -6408,7 +6408,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*
+ ;;
+ esac
+ ;;
+- ppc64-*linux*|powerpc64-*linux*)
++ powerpc64le-*linux*)
++ LD="${LD-ld} -m elf32lppclinux"
++ ;;
++ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+@@ -6427,7 +6430,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+- ppc*-*linux*|powerpc*-*linux*)
++ powerpcle-*linux*)
++ LD="${LD-ld} -m elf64lppc"
++ ;;
++ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
diff --git a/SOURCES/doxygen-1.7.1-config.patch b/SOURCES/doxygen-1.7.1-config.patch
new file mode 100644
index 0000000..f6be5b9
--- /dev/null
+++ b/SOURCES/doxygen-1.7.1-config.patch
@@ -0,0 +1,95 @@
+diff -up doxygen-1.7.1/addon/doxywizard/Makefile.in.config doxygen-1.7.1/addon/doxywizard/Makefile.in
+--- doxygen-1.7.1/addon/doxywizard/Makefile.in.config 2010-05-23 16:51:31.000000000 +0200
++++ doxygen-1.7.1/addon/doxywizard/Makefile.in 2010-07-19 13:38:33.000000000 +0200
+@@ -10,8 +10,6 @@
+ # See the GNU General Public License for more details.
+ #
+
+-QMAKE=qmake $(MKSPECS)
+-
+ all: Makefile.doxywizard
+ $(MAKE) -f Makefile.doxywizard
+
+@@ -29,11 +27,11 @@ distclean: Makefile.doxywizard
+ $(RM) Makefile.doxywizard
+
+ install:
+- $(INSTTOOL) -d $(INSTALL)/bin
+- $(INSTTOOL) -m 755 ../../bin/doxywizard $(INSTALL)/bin
+- $(INSTTOOL) -d $(INSTALL)/$(MAN1DIR)
++ $(INSTTOOL) -d $(DESTDIR)$(INSTALL)/bin
++ $(INSTTOOL) -m 755 ../../bin/doxywizard $(DESTDIR)$(INSTALL)/bin
++ $(INSTTOOL) -d $(DESTDIR)$(INSTALL)/$(MAN1DIR)
+ cat ../../doc/doxywizard.1 | sed -e "s/DATE/$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > doxywizard.1
+- $(INSTTOOL) -m 644 doxywizard.1 $(INSTALL)/$(MAN1DIR)/doxywizard.1
++ $(INSTTOOL) -m 644 doxywizard.1 $(DESTDIR)$(INSTALL)/$(MAN1DIR)/doxywizard.1
+ rm doxywizard.1
+
+ FORCE:
+diff -up doxygen-1.7.1/configure.config doxygen-1.7.1/configure
+--- doxygen-1.7.1/configure.config 2010-06-25 11:46:38.000000000 +0200
++++ doxygen-1.7.1/configure 2010-07-19 12:03:53.000000000 +0200
+@@ -268,9 +268,10 @@ if test "$f_wizard" = YES; then
+ if test -z "$QTDIR"; then
+ echo " QTDIR environment variable not set!"
+ echo -n " Checking for Qt..."
+- for d in /usr/{lib,share,qt}/{qt-4,qt4,qt,qt*,4} /usr; do
++ for d in /usr/{lib64,lib,share,qt}/{qt-4,qt4,qt,qt*,4} /usr; do
+ if test -x "$d/bin/qmake"; then
+ QTDIR=$d
++ QMAKE=$d/bin/qmake
+ fi
+ done
+ else
+@@ -485,6 +486,8 @@ INSTTOOL = $f_insttool
+ DOXYDOCS = ..
+ DOCDIR = $f_docdir
+ QTDIR = $QTDIR
++QMAKE = $QMAKE
++MAN1DIR = share/man/man1
+ EOF
+
+ if test "$f_dot" != NO; then
+diff -up doxygen-1.7.1/Makefile.in.config doxygen-1.7.1/Makefile.in
+--- doxygen-1.7.1/Makefile.in.config 2009-08-20 21:41:13.000000000 +0200
++++ doxygen-1.7.1/Makefile.in 2010-07-19 12:03:53.000000000 +0200
+@@ -44,8 +44,6 @@ distclean: clean
+
+ DATE=$(shell date "+%B %Y")
+
+-MAN1DIR = man/man1
+-
+ install: doxywizard_install
+ $(INSTTOOL) -d $(DESTDIR)/$(INSTALL)/bin
+ $(INSTTOOL) -m 755 bin/doxygen $(DESTDIR)/$(INSTALL)/bin
+diff -up doxygen-1.7.1/tmake/lib/linux-g++/tmake.conf.config doxygen-1.7.1/tmake/lib/linux-g++/tmake.conf
+--- doxygen-1.7.1/tmake/lib/linux-g++/tmake.conf.config 2008-12-06 14:16:20.000000000 +0100
++++ doxygen-1.7.1/tmake/lib/linux-g++/tmake.conf 2010-07-19 12:03:53.000000000 +0200
+@@ -11,7 +11,7 @@ TMAKE_CC = gcc
+ TMAKE_CFLAGS = -pipe
+ TMAKE_CFLAGS_WARN_ON = -Wall -W -fno-exceptions
+ TMAKE_CFLAGS_WARN_OFF =
+-TMAKE_CFLAGS_RELEASE = -O2
++TMAKE_CFLAGS_RELEASE = $(RPM_OPT_FLAGS)
+ TMAKE_CFLAGS_DEBUG = -g
+ TMAKE_CFLAGS_SHLIB = -fPIC
+ TMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+@@ -27,12 +27,12 @@ TMAKE_CXXFLAGS_YACC = $$TMAKE_CFLAGS_YAC
+
+ TMAKE_INCDIR =
+ TMAKE_LIBDIR =
+-TMAKE_INCDIR_X11 = /usr/X11R6/include
+-TMAKE_LIBDIR_X11 = /usr/X11R6/lib
+-TMAKE_INCDIR_QT = $(QTDIR)/include
+-TMAKE_LIBDIR_QT = $(QTDIR)/lib
+-TMAKE_INCDIR_OPENGL = /usr/X11R6/include
+-TMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
++TMAKE_INCDIR_X11 =
++TMAKE_LIBDIR_X11 =
++TMAKE_INCDIR_QT =
++TMAKE_LIBDIR_QT =
++TMAKE_INCDIR_OPENGL =
++TMAKE_LIBDIR_OPENGL =
+
+ TMAKE_LINK = g++
+ TMAKE_LINK_SHLIB = g++
diff --git a/SOURCES/doxygen-1.7.5-timestamp.patch b/SOURCES/doxygen-1.7.5-timestamp.patch
new file mode 100644
index 0000000..efbd992
--- /dev/null
+++ b/SOURCES/doxygen-1.7.5-timestamp.patch
@@ -0,0 +1,63 @@
+diff -up doxygen-1.7.5/src/configoptions.cpp.timestamp doxygen-1.7.5/src/configoptions.cpp
+--- doxygen-1.7.5/src/configoptions.cpp.timestamp 2011-08-03 15:54:50.000000000 +0200
++++ doxygen-1.7.5/src/configoptions.cpp 2011-08-23 12:55:56.000000000 +0200
+@@ -1173,6 +1173,14 @@ void addConfigOptions(Config *cfg)
+ cs->setWidgetType(ConfigString::File);
+ cs->addDependency("GENERATE_HTML");
+ //----
++ cb = cfg->addBool(
++ "HTML_TIMESTAMP",
++ "If the HTML_TIMESTAMP tag is set to YES then the generated HTML\n"
++ "documentation will contain the timesstamp.",
++ FALSE
++ );
++ cb->addDependency("GENERATE_HTML");
++ //----
+ cs = cfg->addString(
+ "HTML_STYLESHEET",
+ "The HTML_STYLESHEET tag can be used to specify a user-defined cascading\n"
+diff -up doxygen-1.7.5/src/config.xml.timestamp doxygen-1.7.5/src/config.xml
+--- doxygen-1.7.5/src/config.xml.timestamp 2011-08-03 15:54:48.000000000 +0200
++++ doxygen-1.7.5/src/config.xml 2011-08-23 12:55:56.000000000 +0200
+@@ -819,6 +819,11 @@ The HTML_FOOTER tag can be used to speci
+ each generated HTML page. If it is left blank doxygen will generate a
+ standard footer.
+ ' defval='' depends='GENERATE_HTML'/>
++
++
+ 0:
+ enabled = adefval
+- else:
+- enabled = "TRUE" if defval=='1' else "FALSE"
++ elif defval=='1':
++ enabled = "TRUE"
++ else:
++ enabled = "FALSE"
+ print " cb = cfg->addBool("
+ print " \"%s\"," % (name)
+ print " \"%s\"," % (docC)
diff --git a/SOURCES/gcc49-aarch64-async-unw-tables.patch b/SOURCES/gcc49-aarch64-async-unw-tables.patch
new file mode 100644
index 0000000..feec149
--- /dev/null
+++ b/SOURCES/gcc49-aarch64-async-unw-tables.patch
@@ -0,0 +1,35 @@
+2014-04-07 Richard Henderson
+
+ * common/config/aarch64/aarch64-common.c (TARGET_OPTION_INIT_STRUCT):
+ Define.
+ (aarch64_option_init_struct): New function.
+
+--- gcc/common/config/aarch64/aarch64-common.c
++++ gcc/common/config/aarch64/aarch64-common.c
+@@ -39,6 +39,9 @@
+ #undef TARGET_OPTION_OPTIMIZATION_TABLE
+ #define TARGET_OPTION_OPTIMIZATION_TABLE aarch_option_optimization_table
+
++#undef TARGET_OPTION_INIT_STRUCT
++#define TARGET_OPTION_INIT_STRUCT aarch64_option_init_struct
++
+ /* Set default optimization options. */
+ static const struct default_options aarch_option_optimization_table[] =
+ {
+@@ -47,6 +50,16 @@ static const struct default_options aarch_option_optimization_table[] =
+ { OPT_LEVELS_NONE, 0, NULL, 0 }
+ };
+
++/* Implement TARGET_OPTION_INIT_STRUCT. */
++
++static void
++aarch64_option_init_struct (struct gcc_options *opts)
++{
++ /* By default, always emit DWARF-2 unwind info. This allows debugging
++ without maintaining a stack frame back-chain. */
++ opts->x_flag_asynchronous_unwind_tables = 1;
++}
++
+ /* Implement TARGET_HANDLE_OPTION.
+ This function handles the target specific options for CPU/target selection.
+
diff --git a/SOURCES/gcc49-aarch64-unwind-opt.patch b/SOURCES/gcc49-aarch64-unwind-opt.patch
new file mode 100644
index 0000000..3ad55ab
--- /dev/null
+++ b/SOURCES/gcc49-aarch64-unwind-opt.patch
@@ -0,0 +1,338 @@
+2014-08-08 Richard Henderson
+
+ * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Add
+ cfi_ops argument, for restore put REG_CFA_RESTORE notes into
+ *cfi_ops rather than on individual insns. Cleanup.
+ (aarch64_save_or_restore_callee_save_registers): Likewise.
+ (aarch64_expand_prologue): Adjust caller.
+ (aarch64_expand_epilogue): Likewise. Cleanup. Emit queued cfi_ops
+ on the stack restore insn.
+
+--- gcc/config/aarch64/aarch64.c.jj 2014-07-08 17:38:17.398231989 +0200
++++ gcc/config/aarch64/aarch64.c 2014-08-13 10:02:45.599757706 +0200
+@@ -1810,8 +1810,7 @@ aarch64_register_saved_on_entry (int reg
+
+ static void
+ aarch64_save_or_restore_fprs (int start_offset, int increment,
+- bool restore, rtx base_rtx)
+-
++ bool restore, rtx base_rtx, rtx *cfi_ops)
+ {
+ unsigned regno;
+ unsigned regno2;
+@@ -1819,16 +1818,16 @@ aarch64_save_or_restore_fprs (int start_
+ rtx (*gen_mem_ref)(enum machine_mode, rtx)
+ = (frame_pointer_needed)? gen_frame_mem : gen_rtx_MEM;
+
+-
+ for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++)
+ {
+ if (aarch64_register_saved_on_entry (regno))
+ {
+- rtx mem;
++ rtx mem, reg1;
+ mem = gen_mem_ref (DFmode,
+ plus_constant (Pmode,
+ base_rtx,
+ start_offset));
++ reg1 = gen_rtx_REG (DFmode, regno);
+
+ for (regno2 = regno + 1;
+ regno2 <= V31_REGNUM
+@@ -1840,56 +1839,51 @@ aarch64_save_or_restore_fprs (int start_
+ if (regno2 <= V31_REGNUM &&
+ aarch64_register_saved_on_entry (regno2))
+ {
+- rtx mem2;
++ rtx mem2, reg2;
+ /* Next highest register to be saved. */
+ mem2 = gen_mem_ref (DFmode,
+ plus_constant
+ (Pmode,
+ base_rtx,
+ start_offset + increment));
++ reg2 = gen_rtx_REG (DFmode, regno2);
++
+ if (restore == false)
+ {
+- insn = emit_insn
+- ( gen_store_pairdf (mem, gen_rtx_REG (DFmode, regno),
+- mem2, gen_rtx_REG (DFmode, regno2)));
+-
++ insn = emit_insn (gen_store_pairdf (mem, reg1, mem2, reg2));
++ /* The first part of a frame-related parallel insn
++ is always assumed to be relevant to the frame
++ calculations; subsequent parts, are only
++ frame-related if explicitly marked. */
++ RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 1)) = 1;
++ RTX_FRAME_RELATED_P (insn) = 1;
+ }
+ else
+ {
+- insn = emit_insn
+- ( gen_load_pairdf (gen_rtx_REG (DFmode, regno), mem,
+- gen_rtx_REG (DFmode, regno2), mem2));
+-
+- add_reg_note (insn, REG_CFA_RESTORE,
+- gen_rtx_REG (DFmode, regno));
+- add_reg_note (insn, REG_CFA_RESTORE,
+- gen_rtx_REG (DFmode, regno2));
++ emit_insn (gen_load_pairdf (reg1, mem, reg2, mem2));
++ *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg1, *cfi_ops);
++ *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg2, *cfi_ops);
+ }
+
+- /* The first part of a frame-related parallel insn
+- is always assumed to be relevant to the frame
+- calculations; subsequent parts, are only
+- frame-related if explicitly marked. */
+- RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 1)) = 1;
+ regno = regno2;
+ start_offset += increment * 2;
+ }
+ else
+ {
+ if (restore == false)
+- insn = emit_move_insn (mem, gen_rtx_REG (DFmode, regno));
++ {
++ insn = emit_move_insn (mem, reg1);
++ RTX_FRAME_RELATED_P (insn) = 1;
++ }
+ else
+ {
+- insn = emit_move_insn (gen_rtx_REG (DFmode, regno), mem);
+- add_reg_note (insn, REG_CFA_RESTORE,
+- gen_rtx_REG (DImode, regno));
++ emit_move_insn (reg1, mem);
++ *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg1, *cfi_ops);
+ }
+ start_offset += increment;
+ }
+- RTX_FRAME_RELATED_P (insn) = 1;
+ }
+ }
+-
+ }
+
+
+@@ -1897,13 +1891,14 @@ aarch64_save_or_restore_fprs (int start_
+ restore's have to happen. */
+ static void
+ aarch64_save_or_restore_callee_save_registers (HOST_WIDE_INT offset,
+- bool restore)
++ bool restore, rtx *cfi_ops)
+ {
+ rtx insn;
+ rtx base_rtx = stack_pointer_rtx;
+ HOST_WIDE_INT start_offset = offset;
+ HOST_WIDE_INT increment = UNITS_PER_WORD;
+- rtx (*gen_mem_ref)(enum machine_mode, rtx) = (frame_pointer_needed)? gen_frame_mem : gen_rtx_MEM;
++ rtx (*gen_mem_ref)(enum machine_mode, rtx)
++ = (frame_pointer_needed)? gen_frame_mem : gen_rtx_MEM;
+ unsigned limit = (frame_pointer_needed)? R28_REGNUM: R30_REGNUM;
+ unsigned regno;
+ unsigned regno2;
+@@ -1912,11 +1907,13 @@ aarch64_save_or_restore_callee_save_regi
+ {
+ if (aarch64_register_saved_on_entry (regno))
+ {
+- rtx mem;
++ rtx mem, reg1;
++
+ mem = gen_mem_ref (Pmode,
+ plus_constant (Pmode,
+ base_rtx,
+ start_offset));
++ reg1 = gen_rtx_REG (DImode, regno);
+
+ for (regno2 = regno + 1;
+ regno2 <= limit
+@@ -1928,56 +1925,54 @@ aarch64_save_or_restore_callee_save_regi
+ if (regno2 <= limit &&
+ aarch64_register_saved_on_entry (regno2))
+ {
+- rtx mem2;
++ rtx mem2, reg2;
+ /* Next highest register to be saved. */
+ mem2 = gen_mem_ref (Pmode,
+ plus_constant
+ (Pmode,
+ base_rtx,
+ start_offset + increment));
++ reg2 = gen_rtx_REG (DImode, regno2);
++
+ if (restore == false)
+ {
+- insn = emit_insn
+- ( gen_store_pairdi (mem, gen_rtx_REG (DImode, regno),
+- mem2, gen_rtx_REG (DImode, regno2)));
+-
++ insn = emit_insn (gen_store_pairdi (mem, reg1, mem2, reg2));
++ /* The first part of a frame-related parallel insn
++ is always assumed to be relevant to the frame
++ calculations; subsequent parts, are only
++ frame-related if explicitly marked. */
++ RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 1)) = 1;
++ RTX_FRAME_RELATED_P (insn) = 1;
+ }
+ else
+ {
+- insn = emit_insn
+- ( gen_load_pairdi (gen_rtx_REG (DImode, regno), mem,
+- gen_rtx_REG (DImode, regno2), mem2));
+-
+- add_reg_note (insn, REG_CFA_RESTORE, gen_rtx_REG (DImode, regno));
+- add_reg_note (insn, REG_CFA_RESTORE, gen_rtx_REG (DImode, regno2));
++ emit_insn (gen_load_pairdi (reg1, mem, reg2, mem2));
++ *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg1, *cfi_ops);
++ *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg2, *cfi_ops);
+ }
+
+- /* The first part of a frame-related parallel insn
+- is always assumed to be relevant to the frame
+- calculations; subsequent parts, are only
+- frame-related if explicitly marked. */
+- RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0,
+- 1)) = 1;
+ regno = regno2;
+ start_offset += increment * 2;
+ }
+ else
+ {
+ if (restore == false)
+- insn = emit_move_insn (mem, gen_rtx_REG (DImode, regno));
++ {
++ insn = emit_move_insn (mem, reg1);
++ RTX_FRAME_RELATED_P (insn) = 1;
++ }
+ else
+ {
+- insn = emit_move_insn (gen_rtx_REG (DImode, regno), mem);
+- add_reg_note (insn, REG_CFA_RESTORE, gen_rtx_REG (DImode, regno));
++ emit_move_insn (reg1, mem);
++ *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg1, *cfi_ops);
+ }
+ start_offset += increment;
+ }
+- RTX_FRAME_RELATED_P (insn) = 1;
+ }
+ }
+
+- aarch64_save_or_restore_fprs (start_offset, increment, restore, base_rtx);
+-
++ aarch64_save_or_restore_fprs (start_offset, increment, restore,
++ base_rtx, cfi_ops);
+ }
+
+ /* AArch64 stack frames generated by this compiler look like:
+@@ -2179,7 +2174,7 @@ aarch64_expand_prologue (void)
+ }
+
+ aarch64_save_or_restore_callee_save_registers
+- (fp_offset + cfun->machine->frame.hardfp_offset, 0);
++ (fp_offset + cfun->machine->frame.hardfp_offset, 0, NULL);
+ }
+
+ /* when offset >= 512,
+@@ -2248,15 +2243,18 @@ aarch64_expand_epilogue (bool for_sibcal
+ insn = emit_insn (gen_add3_insn (stack_pointer_rtx,
+ hard_frame_pointer_rtx,
+ GEN_INT (- fp_offset)));
++ /* CFA should be calculated from the value of SP from now on. */
++ add_reg_note (insn, REG_CFA_ADJUST_CFA,
++ gen_rtx_SET (VOIDmode, stack_pointer_rtx,
++ plus_constant (Pmode, hard_frame_pointer_rtx,
++ -fp_offset)));
+ RTX_FRAME_RELATED_P (insn) = 1;
+- /* As SP is set to (FP - fp_offset), according to the rules in
+- dwarf2cfi.c:dwarf2out_frame_debug_expr, CFA should be calculated
+- from the value of SP from now on. */
+ cfa_reg = stack_pointer_rtx;
+ }
+
++ rtx cfi_ops = NULL;
+ aarch64_save_or_restore_callee_save_registers
+- (fp_offset + cfun->machine->frame.hardfp_offset, 1);
++ (fp_offset + cfun->machine->frame.hardfp_offset, 1, &cfi_ops);
+
+ /* Restore the frame pointer and lr if the frame pointer is needed. */
+ if (offset > 0)
+@@ -2264,6 +2262,8 @@ aarch64_expand_epilogue (bool for_sibcal
+ if (frame_pointer_needed)
+ {
+ rtx mem_fp, mem_lr;
++ rtx reg_fp = hard_frame_pointer_rtx;
++ rtx reg_lr = gen_rtx_REG (DImode, LR_REGNUM);
+
+ if (fp_offset)
+ {
+@@ -2276,52 +2276,36 @@ aarch64_expand_epilogue (bool for_sibcal
+ stack_pointer_rtx,
+ fp_offset
+ + UNITS_PER_WORD));
+- insn = emit_insn (gen_load_pairdi (hard_frame_pointer_rtx,
+- mem_fp,
+- gen_rtx_REG (DImode,
+- LR_REGNUM),
+- mem_lr));
++ emit_insn (gen_load_pairdi (reg_fp, mem_fp, reg_lr, mem_lr));
++
++ insn = emit_insn (gen_add2_insn (stack_pointer_rtx,
++ GEN_INT (offset)));
+ }
+ else
+ {
+ insn = emit_insn (gen_loadwb_pairdi_di
+- (stack_pointer_rtx,
+- stack_pointer_rtx,
+- hard_frame_pointer_rtx,
+- gen_rtx_REG (DImode, LR_REGNUM),
+- GEN_INT (offset),
++ (stack_pointer_rtx, stack_pointer_rtx,
++ reg_fp, reg_lr, GEN_INT (offset),
+ GEN_INT (GET_MODE_SIZE (DImode) + offset)));
+- RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 2)) = 1;
+- add_reg_note (insn, REG_CFA_ADJUST_CFA,
+- (gen_rtx_SET (Pmode, stack_pointer_rtx,
+- plus_constant (Pmode, cfa_reg,
+- offset))));
+- }
+-
+- /* The first part of a frame-related parallel insn
+- is always assumed to be relevant to the frame
+- calculations; subsequent parts, are only
+- frame-related if explicitly marked. */
+- RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 1)) = 1;
+- RTX_FRAME_RELATED_P (insn) = 1;
+- add_reg_note (insn, REG_CFA_RESTORE, hard_frame_pointer_rtx);
+- add_reg_note (insn, REG_CFA_RESTORE,
+- gen_rtx_REG (DImode, LR_REGNUM));
+-
+- if (fp_offset)
+- {
+- insn = emit_insn (gen_add2_insn (stack_pointer_rtx,
+- GEN_INT (offset)));
+- RTX_FRAME_RELATED_P (insn) = 1;
+ }
++ cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg_fp, cfi_ops);
++ cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg_lr, cfi_ops);
+ }
+ else
+ {
+ insn = emit_insn (gen_add2_insn (stack_pointer_rtx,
+ GEN_INT (offset)));
+- RTX_FRAME_RELATED_P (insn) = 1;
+ }
++ cfi_ops = alloc_reg_note (REG_CFA_ADJUST_CFA,
++ gen_rtx_SET (VOIDmode, stack_pointer_rtx,
++ plus_constant (Pmode, cfa_reg,
++ offset)),
++ cfi_ops);
++ REG_NOTES (insn) = cfi_ops;
++ RTX_FRAME_RELATED_P (insn) = 1;
+ }
++ else
++ gcc_assert (cfi_ops == NULL);
+
+ /* Stack adjustment for exception handler. */
+ if (crtl->calls_eh_return)
diff --git a/SOURCES/gcc49-alt-compat-test.patch b/SOURCES/gcc49-alt-compat-test.patch
new file mode 100644
index 0000000..3907d55
--- /dev/null
+++ b/SOURCES/gcc49-alt-compat-test.patch
@@ -0,0 +1,49 @@
+--- gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c.jj 2011-01-03 06:50:42.000000000 -0500
++++ gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c 2011-02-18 06:28:53.858200077 -0500
+@@ -1501,6 +1501,8 @@ generate_random_tests (enum FEATURE feat
+ int i, r;
+ if (len > 'z' - 'a' + 1)
+ abort ();
++ if (getenv ("ALT_CXX_UNDER_TEST") != NULL)
++ features &= ~FEATURE_VECTOR;
+ memset (e, 0, sizeof (e));
+ r = generate_random ();
+ if ((r & 7) == 0)
+--- gcc/testsuite/g++.dg/compat/compat.exp.jj 2011-01-03 06:50:42.000000000 -0500
++++ gcc/testsuite/g++.dg/compat/compat.exp 2011-02-18 06:30:54.248200398 -0500
+@@ -116,7 +116,12 @@ if [info exists ALT_CXX_UNDER_TEST] then
+ }
+
+ # Main loop.
+-foreach src [lsort [find $srcdir/$subdir *_main.C]] {
++set tests [lsort [find $srcdir/$subdir *_main.C]]
++if { $use_alt != 0 } then {
++ set tests [prune $tests $srcdir/$subdir/decimal/*]
++}
++
++foreach src $tests {
+ # If we're only testing specific files and this isn't one of them, skip it.
+ if ![runtest_file_p $runtests $src] then {
+ continue
+--- gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c.jj 2011-01-03 06:49:58.000000000 -0500
++++ gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c 2011-02-18 06:27:54.922262671 -0500
+@@ -1912,6 +1912,8 @@ generate_random_tests (enum FEATURE feat
+ int i, r;
+ if (len > 'z' - 'a' + 1)
+ abort ();
++ if (getenv ("ALT_CC_UNDER_TEST") != NULL)
++ features &= ~FEATURE_VECTOR;
+ memset (e, 0, sizeof (e));
+ r = generate_random ();
+ if ((r & 7) == 0)
+--- gcc/testsuite/lib/c-compat.exp.jj 2011-01-03 06:48:38.000000000 -0500
++++ gcc/testsuite/lib/c-compat.exp 2011-02-18 06:38:19.124265008 -0500
+@@ -75,7 +75,7 @@ proc compat_setup_dfp { } {
+ # If there is an alternate compiler, does it support decimal float types?
+ if { $compat_have_dfp == 1 && $compat_use_alt == 1 && $compat_same_alt == 0 } {
+ compat-use-alt-compiler
+- set compat_have_dfp [check_effective_target_dfprt_nocache]
++ set compat_have_dfp 0
+ compat-use-tst-compiler
+ verbose "compat_have_dfp for alt compiler: $compat_have_dfp" 2
+ }
diff --git a/SOURCES/gcc49-alt-compat-test2.patch b/SOURCES/gcc49-alt-compat-test2.patch
new file mode 100644
index 0000000..d965b3d
--- /dev/null
+++ b/SOURCES/gcc49-alt-compat-test2.patch
@@ -0,0 +1,151 @@
+2014-05-29 Jakub Jelinek
+
+ * lib/target-libpath.exp (set_gcc_exec_prefix_env_var,
+ restore_gcc_exec_prefix_env_var): New procedures.
+ (set_ld_library_path_env_vars,
+ restore_ld_library_path_env_vars): Use them.
+ * lib/c-compat.exp: Load target-libpath.exp.
+ (compat-use-alt-compiler): Call restore_gcc_exec_prefix_env_var.
+ (compat-use-tst-compiler): Call set_gcc_exec_prefix_env_var.
+ * g++.dg/compat/compat.exp (compat-use-alt-compiler): Call
+ restore_gcc_exec_prefix_env_var.
+ * g++.dg/compat/struct-layout-1.exp (compat-use-alt-compiler):
+ Likewise.
+
+--- gcc/testsuite/lib/target-libpath.exp.jj 2014-03-20 16:29:20.000000000 +0100
++++ gcc/testsuite/lib/target-libpath.exp 2014-05-29 19:32:58.192043417 +0200
+@@ -28,6 +28,21 @@ set orig_gcc_exec_prefix_checked 0
+
+
+ #######################################
++# proc set_gcc_exec_prefix_env_var { }
++#######################################
++
++proc set_gcc_exec_prefix_env_var { } {
++ global TEST_GCC_EXEC_PREFIX
++ global env
++
++ # Set GCC_EXEC_PREFIX for the compiler under test to pick up files not in
++ # the build tree from a specified location (normally the install tree).
++ if [info exists TEST_GCC_EXEC_PREFIX] {
++ setenv GCC_EXEC_PREFIX "$TEST_GCC_EXEC_PREFIX"
++ }
++}
++
++#######################################
+ # proc set_ld_library_path_env_vars { }
+ #######################################
+
+@@ -49,7 +64,6 @@ proc set_ld_library_path_env_vars { } {
+ global orig_ld_library_path_64
+ global orig_dyld_library_path
+ global orig_gcc_exec_prefix
+- global TEST_GCC_EXEC_PREFIX
+ global env
+
+ # Save the original GCC_EXEC_PREFIX.
+@@ -61,11 +75,7 @@ proc set_ld_library_path_env_vars { } {
+ set orig_gcc_exec_prefix_checked 1
+ }
+
+- # Set GCC_EXEC_PREFIX for the compiler under test to pick up files not in
+- # the build tree from a specified location (normally the install tree).
+- if [info exists TEST_GCC_EXEC_PREFIX] {
+- setenv GCC_EXEC_PREFIX "$TEST_GCC_EXEC_PREFIX"
+- }
++ set_gcc_exec_prefix_env_var
+
+ # Setting the ld library path causes trouble when testing cross-compilers.
+ if { [is_remote target] } {
+@@ -164,6 +174,22 @@ proc set_ld_library_path_env_vars { } {
+ }
+
+ #######################################
++# proc restore_gcc_exec_prefix_env_var { }
++#######################################
++
++proc restore_gcc_exec_prefix_env_var { } {
++ global orig_gcc_exec_prefix_saved
++ global orig_gcc_exec_prefix
++ global env
++
++ if { $orig_gcc_exec_prefix_saved } {
++ setenv GCC_EXEC_PREFIX "$orig_gcc_exec_prefix"
++ } elseif [info exists env(GCC_EXEC_PREFIX)] {
++ unsetenv GCC_EXEC_PREFIX
++ }
++}
++
++#######################################
+ # proc restore_ld_library_path_env_vars { }
+ #######################################
+
+@@ -175,21 +201,15 @@ proc restore_ld_library_path_env_vars {
+ global orig_ld_library_path_32_saved
+ global orig_ld_library_path_64_saved
+ global orig_dyld_library_path_saved
+- global orig_gcc_exec_prefix_saved
+ global orig_ld_library_path
+ global orig_ld_run_path
+ global orig_shlib_path
+ global orig_ld_library_path_32
+ global orig_ld_library_path_64
+ global orig_dyld_library_path
+- global orig_gcc_exec_prefix
+ global env
+
+- if { $orig_gcc_exec_prefix_saved } {
+- setenv GCC_EXEC_PREFIX "$orig_gcc_exec_prefix"
+- } elseif [info exists env(GCC_EXEC_PREFIX)] {
+- unsetenv GCC_EXEC_PREFIX
+- }
++ restore_gcc_exec_prefix_env_var
+
+ if { $orig_environment_saved == 0 } {
+ return
+--- gcc/testsuite/lib/c-compat.exp.jj 2014-01-03 11:40:40.000000000 +0100
++++ gcc/testsuite/lib/c-compat.exp 2014-05-29 19:33:15.870952346 +0200
+@@ -28,6 +28,7 @@ global compat_skip_list
+ # compilers for compatibility tests.
+
+ load_lib target-supports.exp
++load_lib target-libpath.exp
+
+ #
+ # compat-use-alt-compiler -- make the alternate compiler the default
+@@ -47,6 +48,7 @@ proc compat-use-alt-compiler { } {
+ if { $compat_alt_color == 0 } then {
+ regsub -- "-fdiagnostics-color=never" $TEST_ALWAYS_FLAGS "" TEST_ALWAYS_FLAGS
+ }
++ restore_gcc_exec_prefix_env_var
+ }
+ }
+
+@@ -64,6 +66,7 @@ proc compat-use-tst-compiler { } {
+ if { $compat_same_alt == 0 } then {
+ set GCC_UNDER_TEST $compat_save_gcc_under_test
+ set TEST_ALWAYS_FLAGS $compat_save_TEST_ALWAYS_FLAGS
++ set_gcc_exec_prefix_env_var
+ }
+ }
+
+--- gcc/testsuite/g++.dg/compat/compat.exp.jj 2014-01-03 11:40:43.000000000 +0100
++++ gcc/testsuite/g++.dg/compat/compat.exp 2014-05-29 19:28:57.227272946 +0200
+@@ -55,6 +55,7 @@ proc compat-use-alt-compiler { } {
+ set ALWAYS_CXXFLAGS ""
+ set ld_library_path $alt_ld_library_path
+ set_ld_library_path_env_vars
++ restore_gcc_exec_prefix_env_var
+ }
+ }
+
+--- gcc/testsuite/g++.dg/compat/struct-layout-1.exp.jj 2014-01-03 11:40:43.000000000 +0100
++++ gcc/testsuite/g++.dg/compat/struct-layout-1.exp 2014-05-29 19:29:58.050962141 +0200
+@@ -60,6 +60,7 @@ proc compat-use-alt-compiler { } {
+ set ALWAYS_CXXFLAGS ""
+ set ld_library_path $alt_ld_library_path
+ set_ld_library_path_env_vars
++ restore_gcc_exec_prefix_env_var
+ }
+ }
+
diff --git a/SOURCES/gcc49-cloog-dl.patch b/SOURCES/gcc49-cloog-dl.patch
new file mode 100644
index 0000000..8a72509
--- /dev/null
+++ b/SOURCES/gcc49-cloog-dl.patch
@@ -0,0 +1,476 @@
+--- gcc/Makefile.in.jj 2012-12-13 17:09:20.000000000 +0100
++++ gcc/Makefile.in 2012-12-14 11:45:22.585670055 +0100
+@@ -1006,7 +1006,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
+ # and the system's installed libraries.
+ LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \
+ $(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS)
+-BACKENDLIBS = $(CLOOGLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
++BACKENDLIBS = $(if $(CLOOGLIBS),-ldl) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
+ $(ZLIB)
+ # Any system libraries needed just for GNAT.
+ SYSLIBS = @GNAT_LIBEXC@
+@@ -2011,6 +2011,15 @@ $(out_object_file): $(out_file)
+ $(common_out_object_file): $(common_out_file)
+ $(COMPILE) $<
+ $(POSTCOMPILE)
++
++graphite%.o : \
++ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
++graphite.o : \
++ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
++graphite%.o : \
++ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
++graphite.o : \
++ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
+ #
+ # Generate header and source files from the machine description,
+ # and compile them.
+--- gcc/graphite-poly.h.jj 2012-12-13 11:31:27.000000000 +0100
++++ gcc/graphite-poly.h 2012-12-14 13:41:41.970800726 +0100
+@@ -22,6 +22,371 @@ along with GCC; see the file COPYING3.
+ #ifndef GCC_GRAPHITE_POLY_H
+ #define GCC_GRAPHITE_POLY_H
+
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#define DYNSYMS \
++ DYNSYM (clast_pprint); \
++ DYNSYM (cloog_clast_create_from_input); \
++ DYNSYM (cloog_clast_free); \
++ DYNSYM (cloog_domain_from_isl_set); \
++ DYNSYM (cloog_input_alloc); \
++ DYNSYM (cloog_isl_state_malloc); \
++ DYNSYM (cloog_options_free); \
++ DYNSYM (cloog_options_malloc); \
++ DYNSYM (cloog_scattering_from_isl_map); \
++ DYNSYM (cloog_state_free); \
++ DYNSYM (cloog_union_domain_add_domain); \
++ DYNSYM (cloog_union_domain_alloc); \
++ DYNSYM (cloog_union_domain_set_name); \
++ DYNSYM (isl_aff_add_coefficient_si); \
++ DYNSYM (isl_aff_add_constant); \
++ DYNSYM (isl_aff_free); \
++ DYNSYM (isl_aff_get_coefficient); \
++ DYNSYM (isl_aff_get_space); \
++ DYNSYM (isl_aff_mod); \
++ DYNSYM (isl_aff_set_coefficient_si); \
++ DYNSYM (isl_aff_set_constant_si); \
++ DYNSYM (isl_aff_zero_on_domain); \
++ DYNSYM (isl_band_free); \
++ DYNSYM (isl_band_get_children); \
++ DYNSYM (isl_band_get_partial_schedule); \
++ DYNSYM (isl_band_has_children); \
++ DYNSYM (isl_band_list_free); \
++ DYNSYM (isl_band_list_get_band); \
++ DYNSYM (isl_band_list_get_ctx); \
++ DYNSYM (isl_band_list_n_band); \
++ DYNSYM (isl_band_member_is_zero_distance); \
++ DYNSYM (isl_band_n_member); \
++ DYNSYM (isl_basic_map_add_constraint); \
++ DYNSYM (isl_basic_map_project_out); \
++ DYNSYM (isl_basic_map_universe); \
++ DYNSYM (isl_constraint_set_coefficient); \
++ DYNSYM (isl_constraint_set_coefficient_si); \
++ DYNSYM (isl_constraint_set_constant); \
++ DYNSYM (isl_constraint_set_constant_si); \
++ DYNSYM (isl_ctx_alloc); \
++ DYNSYM (isl_ctx_free); \
++ DYNSYM (isl_equality_alloc); \
++ DYNSYM (isl_id_alloc); \
++ DYNSYM (isl_id_copy); \
++ DYNSYM (isl_id_free); \
++ DYNSYM (isl_inequality_alloc); \
++ DYNSYM (isl_local_space_copy); \
++ DYNSYM (isl_local_space_free); \
++ DYNSYM (isl_local_space_from_space); \
++ DYNSYM (isl_local_space_range); \
++ DYNSYM (isl_map_add_constraint); \
++ DYNSYM (isl_map_add_dims); \
++ DYNSYM (isl_map_align_params); \
++ DYNSYM (isl_map_apply_range); \
++ DYNSYM (isl_map_copy); \
++ DYNSYM (isl_map_dim); \
++ DYNSYM (isl_map_dump); \
++ DYNSYM (isl_map_equate); \
++ DYNSYM (isl_map_fix_si); \
++ DYNSYM (isl_map_flat_product); \
++ DYNSYM (isl_map_flat_range_product); \
++ DYNSYM (isl_map_free); \
++ DYNSYM (isl_map_from_basic_map); \
++ DYNSYM (isl_map_from_pw_aff); \
++ DYNSYM (isl_map_from_union_map); \
++ DYNSYM (isl_map_get_ctx); \
++ DYNSYM (isl_map_get_space); \
++ DYNSYM (isl_map_get_tuple_id); \
++ DYNSYM (isl_map_insert_dims); \
++ DYNSYM (isl_map_intersect); \
++ DYNSYM (isl_map_intersect_domain); \
++ DYNSYM (isl_map_intersect_range); \
++ DYNSYM (isl_map_is_empty); \
++ DYNSYM (isl_map_lex_ge); \
++ DYNSYM (isl_map_lex_le); \
++ DYNSYM (isl_map_n_out); \
++ DYNSYM (isl_map_range); \
++ DYNSYM (isl_map_set_tuple_id); \
++ DYNSYM (isl_map_universe); \
++ DYNSYM (isl_options_set_on_error); \
++ DYNSYM (isl_options_set_schedule_fuse); \
++ DYNSYM (isl_options_set_schedule_max_constant_term); \
++ DYNSYM (isl_options_set_schedule_maximize_band_depth); \
++ DYNSYM (isl_printer_free); \
++ DYNSYM (isl_printer_print_aff); \
++ DYNSYM (isl_printer_print_constraint); \
++ DYNSYM (isl_printer_print_map); \
++ DYNSYM (isl_printer_print_set); \
++ DYNSYM (isl_printer_to_file); \
++ DYNSYM (isl_pw_aff_add); \
++ DYNSYM (isl_pw_aff_alloc); \
++ DYNSYM (isl_pw_aff_copy); \
++ DYNSYM (isl_pw_aff_eq_set); \
++ DYNSYM (isl_pw_aff_free); \
++ DYNSYM (isl_pw_aff_from_aff); \
++ DYNSYM (isl_pw_aff_ge_set); \
++ DYNSYM (isl_pw_aff_gt_set); \
++ DYNSYM (isl_pw_aff_is_cst); \
++ DYNSYM (isl_pw_aff_le_set); \
++ DYNSYM (isl_pw_aff_lt_set); \
++ DYNSYM (isl_pw_aff_mod); \
++ DYNSYM (isl_pw_aff_mul); \
++ DYNSYM (isl_pw_aff_ne_set); \
++ DYNSYM (isl_pw_aff_nonneg_set); \
++ DYNSYM (isl_pw_aff_set_tuple_id); \
++ DYNSYM (isl_pw_aff_sub); \
++ DYNSYM (isl_pw_aff_zero_set); \
++ DYNSYM (isl_schedule_free); \
++ DYNSYM (isl_schedule_get_band_forest); \
++ DYNSYM (isl_set_add_constraint); \
++ DYNSYM (isl_set_add_dims); \
++ DYNSYM (isl_set_apply); \
++ DYNSYM (isl_set_coalesce); \
++ DYNSYM (isl_set_copy); \
++ DYNSYM (isl_set_dim); \
++ DYNSYM (isl_set_fix_si); \
++ DYNSYM (isl_set_free); \
++ DYNSYM (isl_set_from_cloog_domain); \
++ DYNSYM (isl_set_get_space); \
++ DYNSYM (isl_set_get_tuple_id); \
++ DYNSYM (isl_set_intersect); \
++ DYNSYM (isl_set_is_empty); \
++ DYNSYM (isl_set_max); \
++ DYNSYM (isl_set_min); \
++ DYNSYM (isl_set_n_dim); \
++ DYNSYM (isl_set_nat_universe); \
++ DYNSYM (isl_set_project_out); \
++ DYNSYM (isl_set_set_tuple_id); \
++ DYNSYM (isl_set_universe); \
++ DYNSYM (isl_space_add_dims); \
++ DYNSYM (isl_space_alloc); \
++ DYNSYM (isl_space_copy); \
++ DYNSYM (isl_space_dim); \
++ DYNSYM (isl_space_domain); \
++ DYNSYM (isl_space_find_dim_by_id); \
++ DYNSYM (isl_space_free); \
++ DYNSYM (isl_space_from_domain); \
++ DYNSYM (isl_space_get_tuple_id); \
++ DYNSYM (isl_space_params_alloc); \
++ DYNSYM (isl_space_range); \
++ DYNSYM (isl_space_set_alloc); \
++ DYNSYM (isl_space_set_dim_id); \
++ DYNSYM (isl_space_set_tuple_id); \
++ DYNSYM (isl_union_map_add_map); \
++ DYNSYM (isl_union_map_align_params); \
++ DYNSYM (isl_union_map_apply_domain); \
++ DYNSYM (isl_union_map_apply_range); \
++ DYNSYM (isl_union_map_compute_flow); \
++ DYNSYM (isl_union_map_copy); \
++ DYNSYM (isl_union_map_empty); \
++ DYNSYM (isl_union_map_flat_range_product); \
++ DYNSYM (isl_union_map_foreach_map); \
++ DYNSYM (isl_union_map_free); \
++ DYNSYM (isl_union_map_from_map); \
++ DYNSYM (isl_union_map_get_ctx); \
++ DYNSYM (isl_union_map_get_space); \
++ DYNSYM (isl_union_map_gist_domain); \
++ DYNSYM (isl_union_map_gist_range); \
++ DYNSYM (isl_union_map_intersect_domain); \
++ DYNSYM (isl_union_map_is_empty); \
++ DYNSYM (isl_union_map_subtract); \
++ DYNSYM (isl_union_map_union); \
++ DYNSYM (isl_union_set_add_set); \
++ DYNSYM (isl_union_set_compute_schedule); \
++ DYNSYM (isl_union_set_copy); \
++ DYNSYM (isl_union_set_empty); \
++ DYNSYM (isl_union_set_from_set); \
++ DYNSYM (stmt_ass); \
++ DYNSYM (stmt_block); \
++ DYNSYM (stmt_for); \
++ DYNSYM (stmt_guard); \
++ DYNSYM (stmt_root); \
++ DYNSYM (stmt_user);
++extern struct cloog_pointers_s__
++{
++ bool inited;
++ void *h;
++#define DYNSYM(x) __typeof (x) *p_##x
++ DYNSYMS
++#undef DYNSYM
++} cloog_pointers__;
++
++#define cloog_block_alloc (*cloog_pointers__.p_cloog_block_alloc)
++#define clast_pprint (*cloog_pointers__.p_clast_pprint)
++#define cloog_clast_create_from_input (*cloog_pointers__.p_cloog_clast_create_from_input)
++#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free)
++#define cloog_domain_from_isl_set (*cloog_pointers__.p_cloog_domain_from_isl_set)
++#define cloog_input_alloc (*cloog_pointers__.p_cloog_input_alloc)
++#define cloog_isl_state_malloc (*cloog_pointers__.p_cloog_isl_state_malloc)
++#define cloog_options_free (*cloog_pointers__.p_cloog_options_free)
++#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc)
++#define cloog_scattering_from_isl_map (*cloog_pointers__.p_cloog_scattering_from_isl_map)
++#define cloog_state_free (*cloog_pointers__.p_cloog_state_free)
++#define cloog_union_domain_add_domain (*cloog_pointers__.p_cloog_union_domain_add_domain)
++#define cloog_union_domain_alloc (*cloog_pointers__.p_cloog_union_domain_alloc)
++#define cloog_union_domain_set_name (*cloog_pointers__.p_cloog_union_domain_set_name)
++#define isl_aff_add_coefficient_si (*cloog_pointers__.p_isl_aff_add_coefficient_si)
++#define isl_aff_add_constant (*cloog_pointers__.p_isl_aff_add_constant)
++#define isl_aff_free (*cloog_pointers__.p_isl_aff_free)
++#define isl_aff_get_coefficient (*cloog_pointers__.p_isl_aff_get_coefficient)
++#define isl_aff_get_space (*cloog_pointers__.p_isl_aff_get_space)
++#define isl_aff_mod (*cloog_pointers__.p_isl_aff_mod)
++#define isl_aff_set_coefficient_si (*cloog_pointers__.p_isl_aff_set_coefficient_si)
++#define isl_aff_set_constant_si (*cloog_pointers__.p_isl_aff_set_constant_si)
++#define isl_aff_zero_on_domain (*cloog_pointers__.p_isl_aff_zero_on_domain)
++#define isl_band_free (*cloog_pointers__.p_isl_band_free)
++#define isl_band_get_children (*cloog_pointers__.p_isl_band_get_children)
++#define isl_band_get_partial_schedule (*cloog_pointers__.p_isl_band_get_partial_schedule)
++#define isl_band_has_children (*cloog_pointers__.p_isl_band_has_children)
++#define isl_band_list_free (*cloog_pointers__.p_isl_band_list_free)
++#define isl_band_list_get_band (*cloog_pointers__.p_isl_band_list_get_band)
++#define isl_band_list_get_ctx (*cloog_pointers__.p_isl_band_list_get_ctx)
++#define isl_band_list_n_band (*cloog_pointers__.p_isl_band_list_n_band)
++#define isl_band_member_is_zero_distance (*cloog_pointers__.p_isl_band_member_is_zero_distance)
++#define isl_band_n_member (*cloog_pointers__.p_isl_band_n_member)
++#define isl_basic_map_add_constraint (*cloog_pointers__.p_isl_basic_map_add_constraint)
++#define isl_basic_map_project_out (*cloog_pointers__.p_isl_basic_map_project_out)
++#define isl_basic_map_universe (*cloog_pointers__.p_isl_basic_map_universe)
++#define isl_constraint_set_coefficient (*cloog_pointers__.p_isl_constraint_set_coefficient)
++#define isl_constraint_set_coefficient_si (*cloog_pointers__.p_isl_constraint_set_coefficient_si)
++#define isl_constraint_set_constant (*cloog_pointers__.p_isl_constraint_set_constant)
++#define isl_constraint_set_constant_si (*cloog_pointers__.p_isl_constraint_set_constant_si)
++#define isl_ctx_alloc (*cloog_pointers__.p_isl_ctx_alloc)
++#define isl_ctx_free (*cloog_pointers__.p_isl_ctx_free)
++#define isl_equality_alloc (*cloog_pointers__.p_isl_equality_alloc)
++#define isl_id_alloc (*cloog_pointers__.p_isl_id_alloc)
++#define isl_id_copy (*cloog_pointers__.p_isl_id_copy)
++#define isl_id_free (*cloog_pointers__.p_isl_id_free)
++#define isl_inequality_alloc (*cloog_pointers__.p_isl_inequality_alloc)
++#define isl_local_space_copy (*cloog_pointers__.p_isl_local_space_copy)
++#define isl_local_space_free (*cloog_pointers__.p_isl_local_space_free)
++#define isl_local_space_from_space (*cloog_pointers__.p_isl_local_space_from_space)
++#define isl_local_space_range (*cloog_pointers__.p_isl_local_space_range)
++#define isl_map_add_constraint (*cloog_pointers__.p_isl_map_add_constraint)
++#define isl_map_add_dims (*cloog_pointers__.p_isl_map_add_dims)
++#define isl_map_align_params (*cloog_pointers__.p_isl_map_align_params)
++#define isl_map_apply_range (*cloog_pointers__.p_isl_map_apply_range)
++#define isl_map_copy (*cloog_pointers__.p_isl_map_copy)
++#define isl_map_dim (*cloog_pointers__.p_isl_map_dim)
++#define isl_map_dump (*cloog_pointers__.p_isl_map_dump)
++#define isl_map_equate (*cloog_pointers__.p_isl_map_equate)
++#define isl_map_fix_si (*cloog_pointers__.p_isl_map_fix_si)
++#define isl_map_flat_product (*cloog_pointers__.p_isl_map_flat_product)
++#define isl_map_flat_range_product (*cloog_pointers__.p_isl_map_flat_range_product)
++#define isl_map_free (*cloog_pointers__.p_isl_map_free)
++#define isl_map_from_basic_map (*cloog_pointers__.p_isl_map_from_basic_map)
++#define isl_map_from_pw_aff (*cloog_pointers__.p_isl_map_from_pw_aff)
++#define isl_map_from_union_map (*cloog_pointers__.p_isl_map_from_union_map)
++#define isl_map_get_ctx (*cloog_pointers__.p_isl_map_get_ctx)
++#define isl_map_get_space (*cloog_pointers__.p_isl_map_get_space)
++#define isl_map_get_tuple_id (*cloog_pointers__.p_isl_map_get_tuple_id)
++#define isl_map_insert_dims (*cloog_pointers__.p_isl_map_insert_dims)
++#define isl_map_intersect (*cloog_pointers__.p_isl_map_intersect)
++#define isl_map_intersect_domain (*cloog_pointers__.p_isl_map_intersect_domain)
++#define isl_map_intersect_range (*cloog_pointers__.p_isl_map_intersect_range)
++#define isl_map_is_empty (*cloog_pointers__.p_isl_map_is_empty)
++#define isl_map_lex_ge (*cloog_pointers__.p_isl_map_lex_ge)
++#define isl_map_lex_le (*cloog_pointers__.p_isl_map_lex_le)
++#define isl_map_n_out (*cloog_pointers__.p_isl_map_n_out)
++#define isl_map_range (*cloog_pointers__.p_isl_map_range)
++#define isl_map_set_tuple_id (*cloog_pointers__.p_isl_map_set_tuple_id)
++#define isl_map_universe (*cloog_pointers__.p_isl_map_universe)
++#define isl_options_set_on_error (*cloog_pointers__.p_isl_options_set_on_error)
++#define isl_options_set_schedule_fuse (*cloog_pointers__.p_isl_options_set_schedule_fuse)
++#define isl_options_set_schedule_max_constant_term (*cloog_pointers__.p_isl_options_set_schedule_max_constant_term)
++#define isl_options_set_schedule_maximize_band_depth (*cloog_pointers__.p_isl_options_set_schedule_maximize_band_depth)
++#define isl_printer_free (*cloog_pointers__.p_isl_printer_free)
++#define isl_printer_print_aff (*cloog_pointers__.p_isl_printer_print_aff)
++#define isl_printer_print_constraint (*cloog_pointers__.p_isl_printer_print_constraint)
++#define isl_printer_print_map (*cloog_pointers__.p_isl_printer_print_map)
++#define isl_printer_print_set (*cloog_pointers__.p_isl_printer_print_set)
++#define isl_printer_to_file (*cloog_pointers__.p_isl_printer_to_file)
++#define isl_pw_aff_add (*cloog_pointers__.p_isl_pw_aff_add)
++#define isl_pw_aff_alloc (*cloog_pointers__.p_isl_pw_aff_alloc)
++#define isl_pw_aff_copy (*cloog_pointers__.p_isl_pw_aff_copy)
++#define isl_pw_aff_eq_set (*cloog_pointers__.p_isl_pw_aff_eq_set)
++#define isl_pw_aff_free (*cloog_pointers__.p_isl_pw_aff_free)
++#define isl_pw_aff_from_aff (*cloog_pointers__.p_isl_pw_aff_from_aff)
++#define isl_pw_aff_ge_set (*cloog_pointers__.p_isl_pw_aff_ge_set)
++#define isl_pw_aff_gt_set (*cloog_pointers__.p_isl_pw_aff_gt_set)
++#define isl_pw_aff_is_cst (*cloog_pointers__.p_isl_pw_aff_is_cst)
++#define isl_pw_aff_le_set (*cloog_pointers__.p_isl_pw_aff_le_set)
++#define isl_pw_aff_lt_set (*cloog_pointers__.p_isl_pw_aff_lt_set)
++#define isl_pw_aff_mod (*cloog_pointers__.p_isl_pw_aff_mod)
++#define isl_pw_aff_mul (*cloog_pointers__.p_isl_pw_aff_mul)
++#define isl_pw_aff_ne_set (*cloog_pointers__.p_isl_pw_aff_ne_set)
++#define isl_pw_aff_nonneg_set (*cloog_pointers__.p_isl_pw_aff_nonneg_set)
++#define isl_pw_aff_set_tuple_id (*cloog_pointers__.p_isl_pw_aff_set_tuple_id)
++#define isl_pw_aff_sub (*cloog_pointers__.p_isl_pw_aff_sub)
++#define isl_pw_aff_zero_set (*cloog_pointers__.p_isl_pw_aff_zero_set)
++#define isl_schedule_free (*cloog_pointers__.p_isl_schedule_free)
++#define isl_schedule_get_band_forest (*cloog_pointers__.p_isl_schedule_get_band_forest)
++#define isl_set_add_constraint (*cloog_pointers__.p_isl_set_add_constraint)
++#define isl_set_add_dims (*cloog_pointers__.p_isl_set_add_dims)
++#define isl_set_apply (*cloog_pointers__.p_isl_set_apply)
++#define isl_set_coalesce (*cloog_pointers__.p_isl_set_coalesce)
++#define isl_set_copy (*cloog_pointers__.p_isl_set_copy)
++#define isl_set_dim (*cloog_pointers__.p_isl_set_dim)
++#define isl_set_fix_si (*cloog_pointers__.p_isl_set_fix_si)
++#define isl_set_free (*cloog_pointers__.p_isl_set_free)
++#define isl_set_from_cloog_domain (*cloog_pointers__.p_isl_set_from_cloog_domain)
++#define isl_set_get_space (*cloog_pointers__.p_isl_set_get_space)
++#define isl_set_get_tuple_id (*cloog_pointers__.p_isl_set_get_tuple_id)
++#define isl_set_intersect (*cloog_pointers__.p_isl_set_intersect)
++#define isl_set_is_empty (*cloog_pointers__.p_isl_set_is_empty)
++#define isl_set_max (*cloog_pointers__.p_isl_set_max)
++#define isl_set_min (*cloog_pointers__.p_isl_set_min)
++#define isl_set_n_dim (*cloog_pointers__.p_isl_set_n_dim)
++#define isl_set_nat_universe (*cloog_pointers__.p_isl_set_nat_universe)
++#define isl_set_project_out (*cloog_pointers__.p_isl_set_project_out)
++#define isl_set_set_tuple_id (*cloog_pointers__.p_isl_set_set_tuple_id)
++#define isl_set_universe (*cloog_pointers__.p_isl_set_universe)
++#define isl_space_add_dims (*cloog_pointers__.p_isl_space_add_dims)
++#define isl_space_alloc (*cloog_pointers__.p_isl_space_alloc)
++#define isl_space_copy (*cloog_pointers__.p_isl_space_copy)
++#define isl_space_dim (*cloog_pointers__.p_isl_space_dim)
++#define isl_space_domain (*cloog_pointers__.p_isl_space_domain)
++#define isl_space_find_dim_by_id (*cloog_pointers__.p_isl_space_find_dim_by_id)
++#define isl_space_free (*cloog_pointers__.p_isl_space_free)
++#define isl_space_from_domain (*cloog_pointers__.p_isl_space_from_domain)
++#define isl_space_get_tuple_id (*cloog_pointers__.p_isl_space_get_tuple_id)
++#define isl_space_params_alloc (*cloog_pointers__.p_isl_space_params_alloc)
++#define isl_space_range (*cloog_pointers__.p_isl_space_range)
++#define isl_space_set_alloc (*cloog_pointers__.p_isl_space_set_alloc)
++#define isl_space_set_dim_id (*cloog_pointers__.p_isl_space_set_dim_id)
++#define isl_space_set_tuple_id (*cloog_pointers__.p_isl_space_set_tuple_id)
++#define isl_union_map_add_map (*cloog_pointers__.p_isl_union_map_add_map)
++#define isl_union_map_align_params (*cloog_pointers__.p_isl_union_map_align_params)
++#define isl_union_map_apply_domain (*cloog_pointers__.p_isl_union_map_apply_domain)
++#define isl_union_map_apply_range (*cloog_pointers__.p_isl_union_map_apply_range)
++#define isl_union_map_compute_flow (*cloog_pointers__.p_isl_union_map_compute_flow)
++#define isl_union_map_copy (*cloog_pointers__.p_isl_union_map_copy)
++#define isl_union_map_empty (*cloog_pointers__.p_isl_union_map_empty)
++#define isl_union_map_flat_range_product (*cloog_pointers__.p_isl_union_map_flat_range_product)
++#define isl_union_map_foreach_map (*cloog_pointers__.p_isl_union_map_foreach_map)
++#define isl_union_map_free (*cloog_pointers__.p_isl_union_map_free)
++#define isl_union_map_from_map (*cloog_pointers__.p_isl_union_map_from_map)
++#define isl_union_map_get_ctx (*cloog_pointers__.p_isl_union_map_get_ctx)
++#define isl_union_map_get_space (*cloog_pointers__.p_isl_union_map_get_space)
++#define isl_union_map_gist_domain (*cloog_pointers__.p_isl_union_map_gist_domain)
++#define isl_union_map_gist_range (*cloog_pointers__.p_isl_union_map_gist_range)
++#define isl_union_map_intersect_domain (*cloog_pointers__.p_isl_union_map_intersect_domain)
++#define isl_union_map_is_empty (*cloog_pointers__.p_isl_union_map_is_empty)
++#define isl_union_map_subtract (*cloog_pointers__.p_isl_union_map_subtract)
++#define isl_union_map_union (*cloog_pointers__.p_isl_union_map_union)
++#define isl_union_set_add_set (*cloog_pointers__.p_isl_union_set_add_set)
++#define isl_union_set_compute_schedule (*cloog_pointers__.p_isl_union_set_compute_schedule)
++#define isl_union_set_copy (*cloog_pointers__.p_isl_union_set_copy)
++#define isl_union_set_empty (*cloog_pointers__.p_isl_union_set_empty)
++#define isl_union_set_from_set (*cloog_pointers__.p_isl_union_set_from_set)
++#define stmt_ass (*cloog_pointers__.p_stmt_ass)
++#define stmt_block (*cloog_pointers__.p_stmt_block)
++#define stmt_for (*cloog_pointers__.p_stmt_for)
++#define stmt_guard (*cloog_pointers__.p_stmt_guard)
++#define stmt_root (*cloog_pointers__.p_stmt_root)
++#define stmt_user (*cloog_pointers__.p_stmt_user)
++
+ typedef struct poly_dr *poly_dr_p;
+
+ typedef struct poly_bb *poly_bb_p;
+--- gcc/graphite.c.jj 2012-12-13 11:31:00.000000000 +0100
++++ gcc/graphite.c 2012-12-14 13:40:44.155136961 +0100
+@@ -78,6 +78,34 @@ along with GCC; see the file COPYING3.
+
+ CloogState *cloog_state;
+
++__typeof (cloog_pointers__) cloog_pointers__;
++
++static bool
++init_cloog_pointers (void)
++{
++ void *h;
++
++ if (cloog_pointers__.inited)
++ return cloog_pointers__.h != NULL;
++ h = dlopen ("libcloog-isl.so.4", RTLD_LAZY);
++ cloog_pointers__.h = h;
++ if (h == NULL)
++ return false;
++#define DYNSYM(x) \
++ do \
++ { \
++ union { __typeof (cloog_pointers__.p_##x) p; void *q; } u; \
++ u.q = dlsym (h, #x); \
++ if (u.q == NULL) \
++ return false; \
++ cloog_pointers__.p_##x = u.p; \
++ } \
++ while (0)
++ DYNSYMS
++#undef DYNSYM
++ return true;
++}
++
+ /* Print global statistics to FILE. */
+
+ static void
+@@ -277,6 +305,15 @@ graphite_transform_loops (void)
+ if (parallelized_function_p (cfun->decl))
+ return;
+
++ if (number_of_loops (cfun) <= 1)
++ return;
++
++ if (!init_cloog_pointers ())
++ {
++ sorry ("Graphite loop optimizations cannot be used");
++ return;
++ }
++
+ ctx = isl_ctx_alloc ();
+ isl_options_set_on_error (ctx, ISL_ON_ERROR_ABORT);
+ if (!graphite_initialize (ctx))
+--- gcc/graphite-clast-to-gimple.c.jj 2012-12-13 11:31:27.000000000 +0100
++++ gcc/graphite-clast-to-gimple.c 2012-12-14 13:27:47.196519858 +0100
+@@ -910,7 +910,7 @@ compute_bounds_for_loop (struct clast_fo
+ from STMT_FOR. */
+
+ static tree
+-type_for_clast_for (struct clast_for *stmt_for, ivs_params_p ip)
++type_for_clast_for (struct clast_for *stmt_fora, ivs_params_p ip)
+ {
+ mpz_t bound_one, bound_two;
+ tree lb_type, ub_type;
+@@ -918,8 +918,8 @@ type_for_clast_for (struct clast_for *st
+ mpz_init (bound_one);
+ mpz_init (bound_two);
+
+- lb_type = type_for_clast_expr (stmt_for->LB, ip, bound_one, bound_two);
+- ub_type = type_for_clast_expr (stmt_for->UB, ip, bound_one, bound_two);
++ lb_type = type_for_clast_expr (stmt_fora->LB, ip, bound_one, bound_two);
++ ub_type = type_for_clast_expr (stmt_fora->UB, ip, bound_one, bound_two);
+
+ mpz_clear (bound_one);
+ mpz_clear (bound_two);
diff --git a/SOURCES/gcc49-cloog-dl2.patch b/SOURCES/gcc49-cloog-dl2.patch
new file mode 100644
index 0000000..2f647a3
--- /dev/null
+++ b/SOURCES/gcc49-cloog-dl2.patch
@@ -0,0 +1,74 @@
+2011-04-04 Jakub Jelinek
+
+ * toplev.c (toplev_main_argv): New variable.
+ (toplev_main): Initialize it.
+ * graphite.c (init_cloog_pointers): Load libcloog-isl.so.4 from gcc's private
+ directory.
+
+--- gcc/toplev.c.jj 2008-12-09 23:59:10.000000000 +0100
++++ gcc/toplev.c 2009-01-27 14:33:52.000000000 +0100
+@@ -107,6 +107,8 @@ static bool no_backend;
+ /* Length of line when printing switch values. */
+ #define MAX_LINE 75
+
++const char **toplev_main_argv;
++
+ /* Decoded options, and number of such options. */
+ struct cl_decoded_option *save_decoded_options;
+ unsigned int save_decoded_options_count;
+@@ -1909,6 +1911,8 @@ toplev_main (int argc, char **argv)
+
+ expandargv (&argc, &argv);
+
++ toplev_main_argv = CONST_CAST2 (const char **, char **, argv);
++
+ /* Initialization of GCC's environment, and diagnostics. */
+ general_init (argv[0]);
+
+--- gcc/graphite.c.jj 2010-12-01 10:24:32.000000000 -0500
++++ gcc/graphite.c 2010-12-01 11:46:07.832118193 -0500
+@@ -72,11 +72,39 @@ __typeof (cloog_pointers__) cloog_pointe
+ static bool
+ init_cloog_pointers (void)
+ {
+- void *h;
+-
+- if (cloog_pointers__.inited)
+- return cloog_pointers__.h != NULL;
+- h = dlopen ("libcloog-isl.so.4", RTLD_LAZY);
++ void *h = NULL;
++ extern const char **toplev_main_argv;
++ char *buf, *p;
++ size_t len;
++
++ if (cloog_pointers__.inited)
++ return cloog_pointers__.h != NULL;
++ len = progname - toplev_main_argv[0];
++ buf = XALLOCAVAR (char, len + sizeof "libcloog-isl.so.4");
++ memcpy (buf, toplev_main_argv[0], len);
++ strcpy (buf + len, "libcloog-isl.so.4");
++ len += sizeof "libcloog-isl.so.4";
++ p = strstr (buf, "/libexec/");
++ if (p != NULL)
++ {
++ while (1)
++ {
++ char *q = strstr (p + 8, "/libexec/");
++ if (q == NULL)
++ break;
++ p = q;
++ }
++ memmove (p + 4, p + 8, len - (p + 8 - buf));
++ h = dlopen (buf, RTLD_LAZY);
++ if (h == NULL)
++ {
++ len = progname - toplev_main_argv[0];
++ memcpy (buf, toplev_main_argv[0], len);
++ strcpy (buf + len, "libcloog-isl.so.4");
++ }
++ }
++ if (h == NULL)
++ h = dlopen (buf, RTLD_LAZY);
+ cloog_pointers__.h = h;
+ if (h == NULL)
+ return false;
diff --git a/SOURCES/gcc49-color-auto.patch b/SOURCES/gcc49-color-auto.patch
new file mode 100644
index 0000000..a8cf938
--- /dev/null
+++ b/SOURCES/gcc49-color-auto.patch
@@ -0,0 +1,46 @@
+2013-09-20 Jakub Jelinek
+
+ * common.opt (-fdiagnostics-color=): Default to auto.
+ * toplev.c (process_options): Always default to
+ -fdiagnostics-color=auto if no -f{,no-}diagnostics-color*.
+ * doc/invoke.texi (-fdiagnostics-color*): Adjust documentation
+ of the default.
+
+--- gcc/common.opt.jj 2013-09-18 12:06:53.000000000 +0200
++++ gcc/common.opt 2013-09-20 10:00:00.935823900 +0200
+@@ -1037,7 +1037,7 @@ Common Alias(fdiagnostics-color=,always,
+ ;
+
+ fdiagnostics-color=
+-Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
++Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_AUTO)
+ -fdiagnostics-color=[never|always|auto] Colorize diagnostics
+
+ ; Required for these enum values.
+--- gcc/toplev.c.jj 2013-09-09 11:32:39.000000000 +0200
++++ gcc/toplev.c 2013-09-20 10:10:08.198721005 +0200
+@@ -1229,10 +1229,8 @@ process_options (void)
+
+ maximum_field_alignment = initial_max_fld_align * BITS_PER_UNIT;
+
+- /* Default to -fdiagnostics-color=auto if GCC_COLORS is in the environment,
+- otherwise default to -fdiagnostics-color=never. */
+- if (!global_options_set.x_flag_diagnostics_show_color
+- && getenv ("GCC_COLORS"))
++ /* Default to -fdiagnostics-color=auto. */
++ if (!global_options_set.x_flag_diagnostics_show_color)
+ pp_show_color (global_dc->printer)
+ = colorize_init (DIAGNOSTICS_COLOR_AUTO);
+
+--- gcc/doc/invoke.texi.jj 2013-09-18 12:06:50.000000000 +0200
++++ gcc/doc/invoke.texi 2013-09-20 10:09:29.079904455 +0200
+@@ -3046,8 +3046,7 @@ a message which is too long to fit on a
+ @cindex highlight, color, colour
+ @vindex GCC_COLORS @r{environment variable}
+ Use color in diagnostics. @var{WHEN} is @samp{never}, @samp{always},
+-or @samp{auto}. The default is @samp{never} if @env{GCC_COLORS} environment
+-variable isn't present in the environment, and @samp{auto} otherwise.
++or @samp{auto}. The default is @samp{auto}.
+ @samp{auto} means to use color only when the standard error is a terminal.
+ The forms @option{-fdiagnostics-color} and @option{-fno-diagnostics-color} are
+ aliases for @option{-fdiagnostics-color=always} and
diff --git a/SOURCES/gcc49-hack.patch b/SOURCES/gcc49-hack.patch
new file mode 100644
index 0000000..1903e95
--- /dev/null
+++ b/SOURCES/gcc49-hack.patch
@@ -0,0 +1,102 @@
+--- libada/Makefile.in.jj 2009-01-14 12:07:35.000000000 +0100
++++ libada/Makefile.in 2009-01-15 14:25:33.000000000 +0100
+@@ -66,18 +66,40 @@ libsubdir := $(libdir)/gcc/$(target_nonc
+ ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
+ ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTISUBDIR))
+
++DEFAULTMULTIFLAGS :=
++ifeq ($(MULTISUBDIR),)
++targ:=$(subst -, ,$(target))
++arch:=$(word 1,$(targ))
++ifeq ($(words $(targ)),2)
++osys:=$(word 2,$(targ))
++else
++osys:=$(word 3,$(targ))
++endif
++ifeq ($(strip $(filter-out i%86 x86_64 powerpc% ppc% s390% sparc% linux%, $(arch) $(osys))),)
++ifeq ($(shell $(CC) $(CFLAGS) -print-multi-os-directory),../lib64)
++DEFAULTMULTIFLAGS := -m64
++else
++ifeq ($(strip $(filter-out s390%, $(arch))),)
++DEFAULTMULTIFLAGS := -m31
++else
++DEFAULTMULTIFLAGS := -m32
++endif
++endif
++endif
++endif
++
+ # exeext should not be used because it's the *host* exeext. We're building
+ # a *target* library, aren't we?!? Likewise for CC. Still, provide bogus
+ # definitions just in case something slips through the safety net provided
+ # by recursive make invocations in gcc/ada/Makefile.in
+ LIBADA_FLAGS_TO_PASS = \
+ "MAKEOVERRIDES=" \
+- "LDFLAGS=$(LDFLAGS)" \
++ "LDFLAGS=$(LDFLAGS) $(DEFAULTMULTIFLAGS)" \
+ "LN_S=$(LN_S)" \
+ "SHELL=$(SHELL)" \
+- "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
+- "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
+- "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
++ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
++ "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
++ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
+ "PICFLAG_FOR_TARGET=$(PICFLAG)" \
+ "THREAD_KIND=$(THREAD_KIND)" \
+ "TRACE=$(TRACE)" \
+@@ -88,7 +110,7 @@ LIBADA_FLAGS_TO_PASS = \
+ "exeext=.exeext.should.not.be.used " \
+ 'CC=the.host.compiler.should.not.be.needed' \
+ "GCC_FOR_TARGET=$(CC)" \
+- "CFLAGS=$(CFLAGS)"
++ "CFLAGS=$(CFLAGS) $(DEFAULTMULTIFLAGS)"
+
+ # Rules to build gnatlib.
+ .PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared osconstool
+--- gcc/ada/sem_util.adb (revision 161677)
++++ gcc/ada/sem_util.adb (working copy)
+@@ -5487,7 +5487,7 @@ package body Sem_Util is
+ Exp : Node_Id;
+ Assn : Node_Id;
+ Choice : Node_Id;
+- Comp_Type : Entity_Id;
++ Comp_Type : Entity_Id := Empty;
+ Is_Array_Aggr : Boolean;
+
+ begin
+--- config-ml.in.jj 2010-06-30 09:50:44.000000000 +0200
++++ config-ml.in 2010-07-02 21:24:17.994211151 +0200
+@@ -516,6 +516,8 @@ multi-do:
+ ADAFLAGS="$(ADAFLAGS) $${flags}" \
+ prefix="$(prefix)" \
+ exec_prefix="$(exec_prefix)" \
++ mandir="$(mandir)" \
++ infodir="$(infodir)" \
+ GCJFLAGS="$(GCJFLAGS) $${flags}" \
+ GOCFLAGS="$(GOCFLAGS) $${flags}" \
+ CXXFLAGS="$(CXXFLAGS) $${flags}" \
+--- libjava/Makefile.am.jj 2010-07-09 11:17:33.729604090 +0200
++++ libjava/Makefile.am 2010-07-09 13:16:41.894375641 +0200
+@@ -710,7 +710,8 @@ if USE_LIBGCJ_BC
+ ## later.
+ @echo Installing dummy lib libgcj_bc.so.1.0.0; \
+ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
+- mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
++ $(INSTALL) $(INSTALL_STRIP_FLAG) $(here)/.libs/libgcj_bc.so $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
++ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0; \
+ $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
+ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
+ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
+--- libjava/Makefile.in.jj 2010-07-09 11:17:34.000000000 +0200
++++ libjava/Makefile.in 2010-07-09 13:18:07.542572270 +0200
+@@ -12665,7 +12665,8 @@ install-exec-hook: install-binPROGRAMS i
+ install-libexecsubPROGRAMS
+ @USE_LIBGCJ_BC_TRUE@ @echo Installing dummy lib libgcj_bc.so.1.0.0; \
+ @USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
+-@USE_LIBGCJ_BC_TRUE@ mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
++@USE_LIBGCJ_BC_TRUE@ $(INSTALL) $(INSTALL_STRIP_FLAG) $(here)/.libs/libgcj_bc.so $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
++@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0; \
+ @USE_LIBGCJ_BC_TRUE@ $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
+ @USE_LIBGCJ_BC_TRUE@ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
+ @USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
diff --git a/SOURCES/gcc49-i386-libgomp.patch b/SOURCES/gcc49-i386-libgomp.patch
new file mode 100644
index 0000000..45883a6
--- /dev/null
+++ b/SOURCES/gcc49-i386-libgomp.patch
@@ -0,0 +1,20 @@
+--- libgomp/configure.tgt.jj 2008-01-10 20:53:48.000000000 +0100
++++ libgomp/configure.tgt 2008-03-27 12:44:51.000000000 +0100
+@@ -67,7 +67,7 @@ if test $enable_linux_futex = yes; then
+ ;;
+ *)
+ if test -z "$with_arch"; then
+- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
++ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
+ fi
+ esac
+ ;;
+@@ -79,7 +79,7 @@ if test $enable_linux_futex = yes; then
+ config_path="linux/x86 linux posix"
+ case " ${CC} ${CFLAGS} " in
+ *" -m32 "*)
+- XCFLAGS="${XCFLAGS} -march=i486 -mtune=i686"
++ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
+ ;;
+ esac
+ ;;
diff --git a/SOURCES/gcc49-java-nomulti.patch b/SOURCES/gcc49-java-nomulti.patch
new file mode 100644
index 0000000..17334aa
--- /dev/null
+++ b/SOURCES/gcc49-java-nomulti.patch
@@ -0,0 +1,44 @@
+--- libjava/configure.ac.jj 2007-12-07 17:55:50.000000000 +0100
++++ libjava/configure.ac 2007-12-07 18:36:56.000000000 +0100
+@@ -82,6 +82,13 @@ AC_ARG_ENABLE(java-maintainer-mode,
+ [allow rebuilding of .class and .h files]))
+ AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
+
++AC_ARG_ENABLE(libjava-multilib,
++ AS_HELP_STRING([--enable-libjava-multilib], [build libjava as multilib]))
++if test "$enable_libjava_multilib" = no; then
++ multilib=no
++ ac_configure_args="$ac_configure_args --disable-multilib"
++fi
++
+ # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
+ GCC_NO_EXECUTABLES
+
+--- libjava/configure.jj 2007-12-07 17:55:50.000000000 +0100
++++ libjava/configure 2007-12-07 18:39:58.000000000 +0100
+@@ -1021,6 +1021,8 @@ Optional Features:
+ default=yes
+ --enable-java-maintainer-mode
+ allow rebuilding of .class and .h files
++ --enable-libjava-multilib
++ build libjava as multilib
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
+ --enable-maintainer-mode enable make rules and dependencies not useful
+@@ -1973,6 +1975,16 @@ else
+ fi
+
+
++# Check whether --enable-libjava-multilib was given.
++if test "${enable_libjava_multilib+set}" = set; then
++ enableval=$enable_libjava_multilib;
++fi
++
++if test "$enable_libjava_multilib" = no; then
++ multilib=no
++ ac_configure_args="$ac_configure_args --disable-multilib"
++fi
++
+ # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
+
+
diff --git a/SOURCES/gcc49-libgfortran-compat.patch b/SOURCES/gcc49-libgfortran-compat.patch
new file mode 100644
index 0000000..9f5b1a4
--- /dev/null
+++ b/SOURCES/gcc49-libgfortran-compat.patch
@@ -0,0 +1,2281 @@
+--- libgfortran/Makefile.am.jj 2014-04-11 14:53:47.007361552 +0200
++++ libgfortran/Makefile.am 2014-05-09 15:14:49.855968357 +0200
+@@ -34,6 +34,7 @@ LTLDFLAGS = $(shell $(SHELL) $(top_srcdi
+ $(lt_host_flags)
+
+ toolexeclib_LTLIBRARIES = libgfortran.la
++noinst_LTLIBRARIES = libgfortran_nonshared.la
+ toolexeclib_DATA = libgfortran.spec
+ libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
+ libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+@@ -848,6 +849,196 @@ libgfortran_la_SOURCES = $(prereq_SRC)
+
+ endif
+
++if LIBGFOR_BUILD_QUAD
++nonshared_generated_quad_F90_SRC = \
++nonshared-_abs_c16.F90 \
++nonshared-_abs_r16.F90 \
++nonshared-_acosh_r16.F90 \
++nonshared-_acos_r16.F90 \
++nonshared-_aimag_c16.F90 \
++nonshared-_aint_r16.F90 \
++nonshared-_anint_r16.F90 \
++nonshared-_asinh_r16.F90 \
++nonshared-_asin_r16.F90 \
++nonshared-_atan2_r16.F90 \
++nonshared-_atanh_r16.F90 \
++nonshared-_atan_r16.F90 \
++nonshared-_conjg_c16.F90 \
++nonshared-_cos_c16.F90 \
++nonshared-_cosh_r16.F90 \
++nonshared-_cos_r16.F90 \
++nonshared-_dim_r16.F90 \
++nonshared-_exp_c16.F90 \
++nonshared-_exp_r16.F90 \
++nonshared-_log10_r16.F90 \
++nonshared-_log_c16.F90 \
++nonshared-_log_r16.F90 \
++nonshared-_mod_r16.F90 \
++nonshared-_sign_r16.F90 \
++nonshared-_sin_c16.F90 \
++nonshared-_sinh_r16.F90 \
++nonshared-_sin_r16.F90 \
++nonshared-_sqrt_c16.F90 \
++nonshared-_sqrt_r16.F90 \
++nonshared-_tanh_r16.F90 \
++nonshared-_tan_r16.F90
++nonshared_generated_quad_C_SRC = \
++nonshared-exponent_r16.c \
++nonshared-fraction_r16.c \
++nonshared-matmul_c16.c \
++nonshared-matmul_r16.c \
++nonshared-maxloc0_16_r16.c \
++nonshared-maxloc0_4_r16.c \
++nonshared-maxloc0_8_r16.c \
++nonshared-maxloc1_16_r16.c \
++nonshared-maxloc1_4_r16.c \
++nonshared-maxloc1_8_r16.c \
++nonshared-maxval_r16.c \
++nonshared-minloc0_16_r16.c \
++nonshared-minloc0_4_r16.c \
++nonshared-minloc0_8_r16.c \
++nonshared-minloc1_16_r16.c \
++nonshared-minloc1_4_r16.c \
++nonshared-minloc1_8_r16.c \
++nonshared-minval_r16.c \
++nonshared-nearest_r16.c \
++nonshared-pow_c16_i16.c \
++nonshared-pow_c16_i4.c \
++nonshared-pow_c16_i8.c \
++nonshared-pow_r16_i16.c \
++nonshared-pow_r16_i4.c \
++nonshared-pow_r16_i8.c \
++nonshared-product_c16.c \
++nonshared-product_r16.c \
++nonshared-reshape_c16.c \
++nonshared-reshape_r16.c \
++nonshared-rrspacing_r16.c \
++nonshared-set_exponent_r16.c \
++nonshared-spacing_r16.c \
++nonshared-sum_c16.c \
++nonshared-sum_r16.c \
++nonshared-transpose_c16.c \
++nonshared-transpose_r16.c
++nonshared_generated_special_quad_F90_SRC = \
++nonshared-misc_specifics.F90
++nonshared_quad_SRC = \
++$(srcdir)/intrinsics/nonshared-iso_c_generated_procs.c \
++$(srcdir)/intrinsics/nonshared-cpu_time.c \
++$(srcdir)/intrinsics/nonshared-erfc_scaled.c \
++$(srcdir)/intrinsics/nonshared-random.c
++else
++nonshared_generated_quad_F90_SRC =
++nonshared_generated_quad_C_SRC =
++nonshared_generated_special_quad_F90_SRC =
++nonshared_quad_SRC =
++endif
++
++nonshared_generated_F90_SRC = \
++$(nonshared_generated_quad_F90_SRC)
++nonshared_generated_special_F90_SRC = \
++$(nonshared_generated_special_quad_F90_SRC)
++nonshared_intrinsics_special_F90_SRC = \
++nonshared-selected_real_kind.F90
++nonshared_generated_C_SRC = \
++$(nonshared_generated_quad_C_SRC) \
++nonshared-bessel_r10.c \
++nonshared-bessel_r16.c \
++nonshared-bessel_r4.c \
++nonshared-bessel_r8.c \
++nonshared-iall_i1.c \
++nonshared-iall_i2.c \
++nonshared-iall_i4.c \
++nonshared-iall_i8.c \
++nonshared-iall_i16.c \
++nonshared-iany_i1.c \
++nonshared-iany_i2.c \
++nonshared-iany_i4.c \
++nonshared-iany_i8.c \
++nonshared-iany_i16.c \
++nonshared-iparity_i1.c \
++nonshared-iparity_i2.c \
++nonshared-iparity_i4.c \
++nonshared-iparity_i8.c \
++nonshared-iparity_i16.c \
++nonshared-norm2_r10.c \
++nonshared-norm2_r16.c \
++nonshared-norm2_r4.c \
++nonshared-norm2_r8.c \
++nonshared-parity_l16.c \
++nonshared-parity_l1.c \
++nonshared-parity_l2.c \
++nonshared-parity_l4.c \
++nonshared-parity_l8.c
++
++nonshared_intrinsics_C_SRC = \
++nonshared-extends_type_of.c
++
++nonshared_runtime_C_SRC = \
++nonshared-bounds.c
++
++$(patsubst %.c,%.lo,$(nonshared_generated_C_SRC) $(nonshared)): \
++nonshared-%.lo: $(srcdir)/generated/%.c
++ $(LTCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED
++
++$(patsubst %.c,%.o,$(nonshared_generated_C_SRC) $(nonshared)): \
++nonshared-%.o: $(srcdir)/generated/%.c
++ $(COMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED
++
++$(patsubst %.F90,%.lo,$(nonshared_generated_F90_SRC) $(nonshared)): \
++nonshared-%.lo: $(srcdir)/generated/%.F90
++ $(LTPPFCCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED -fallow-leading-underscore
++
++$(patsubst %.F90,%.o,$(nonshared_generated_F90_SRC) $(nonshared)): \
++nonshared-%.o: $(srcdir)/generated/%.F90
++ $(PPFCCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED -fallow-leading-underscore
++
++$(patsubst %.c,%.lo,$(nonshared_intrinsics_C_SRC) $(nonshared)): \
++nonshared-%.lo: $(srcdir)/intrinsics/%.c
++ $(LTCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED
++
++$(patsubst %.c,%.o,$(nonshared_intrinsics_C_SRC) $(nonshared)): \
++nonshared-%.o: $(srcdir)/intrinsics/%.c
++ $(COMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED
++
++$(patsubst %.c,%.lo,$(nonshared_runtime_C_SRC) $(nonshared)): \
++nonshared-%.lo: $(srcdir)/runtime/%.c
++ $(LTCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED
++
++$(patsubst %.c,%.o,$(nonshared_runtime_C_SRC) $(nonshared)): \
++nonshared-%.o: $(srcdir)/runtime/%.c
++ $(COMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED
++
++$(patsubst %.F90,%.lo,$(nonshared_generated_special_F90_SRC) $(nonshared)): \
++nonshared-%.lo: $(srcdir)/generated/nonshared-%.F90
++ $(LTPPFCCOMPILE) -c -o $@ $< -fallow-leading-underscore
++
++$(patsubst %.F90,%.o,$(nonshared_generated_special_F90_SRC) $(nonshared)): \
++nonshared-%.o: $(srcdir)/generated/nonshared-%.F90
++ $(PPFCCOMPILE) -c -o $@ $< -fallow-leading-underscore
++
++$(patsubst %.F90,%.lo,$(nonshared_intrinsics_special_F90_SRC) $(nonshared)): \
++nonshared-%.lo: $(srcdir)/intrinsics/nonshared-%.F90
++ $(LTPPFCCOMPILE) -c -o $@ $< -fallow-leading-underscore
++
++$(patsubst %.F90,%.o,$(nonshared_intrinsics_special_F90_SRC) $(nonshared)): \
++nonshared-%.o: $(srcdir)/intrinsics/nonshared-%.F90
++ $(PPFCCOMPILE) -c -o $@ $< -fallow-leading-underscore
++
++libgfortran_nonshared_la_SOURCES = \
++$(nonshared_generated_F90_SRC) \
++$(nonshared_generated_C_SRC) \
++$(nonshared_intrinsics_C_SRC) \
++$(nonshared_runtime_C_SRC) \
++$(nonshared_quad_SRC) \
++$(nonshared_generated_special_F90_SRC) \
++$(nonshared_intrinsics_special_F90_SRC) \
++$(srcdir)/intrinsics/nonshared-execute_command_line.c \
++$(srcdir)/intrinsics/nonshared-shift.c \
++$(srcdir)/io/nonshared-transfer.c \
++$(srcdir)/io/nonshared-ftell2.c \
++$(srcdir)/runtime/nonshared-backtrace.c
++$(srcdir)/runtime/nonshared-stop.c
++
+ I_M4_DEPS=m4/iparm.m4
+ I_M4_DEPS0=$(I_M4_DEPS) m4/iforeach.m4
+ I_M4_DEPS1=$(I_M4_DEPS) m4/ifunction.m4
+--- libgfortran/libgfortran.h.jj 2014-08-01 10:16:01.000000000 +0200
++++ libgfortran/libgfortran.h 2014-08-01 15:21:26.371033136 +0200
+@@ -191,7 +191,7 @@ extern int __mingw_snprintf (char *, siz
+ # define internal_proto(x) sym_rename(x, IPREFIX(x))
+ #endif
+
+-#if defined(HAVE_ATTRIBUTE_VISIBILITY) && defined(HAVE_ATTRIBUTE_ALIAS)
++#if defined(HAVE_ATTRIBUTE_VISIBILITY) && defined(HAVE_ATTRIBUTE_ALIAS) && !defined(LIBGFORTRAN_NONSHARED)
+ # define export_proto(x) sym_rename(x, PREFIX(x))
+ # define export_proto_np(x) extern char swallow_semicolon
+ # define iexport_proto(x) internal_proto(x)
+@@ -275,6 +275,10 @@ typedef GFC_UINTEGER_4 gfc_char4_t;
+ extern int big_endian;
+ internal_proto(big_endian);
+
++#ifdef LIBGFORTRAN_NONSHARED
++#define big_endian (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
++#endif
++
+ #define GFOR_POINTER_TO_L1(p, kind) \
+ (big_endian * (kind - 1) + (GFC_LOGICAL_1 *)(p))
+
+@@ -1395,4 +1399,63 @@ void cshift0_c16 (gfc_array_c16 *, const
+ internal_proto(cshift0_c16);
+ #endif
+
++#ifdef LIBGFORTRAN_NONSHARED
++#include
++#include
++#include
++
++#define internal_malloc_size nonshared_internal_malloc_size
++#define xmalloc nonshared_internal_xmalloc
++#define xmallocarray nonshared_internal_xmallocarray
++#define reshape_packed nonshared_reshape_packed
++static inline __attribute__((__always_inline__, __unused__))
++void *
++internal_malloc_size (size_t size)
++{
++ void *p;
++
++ if (size == 0)
++ return NULL;
++
++ p = (void *) malloc (size);
++ if (p == NULL)
++ os_error ("Memory allocation failed");
++ return p;
++}
++
++static inline __attribute__((__always_inline__, __unused__))
++void *
++xmalloc (size_t size)
++{
++ return internal_malloc_size (size ? size : 1);
++}
++
++static inline __attribute__((__always_inline__, __unused__))
++void *
++xmallocarray (size_t nmemb, size_t size)
++{
++ if (!nmemb || !size)
++ size = nmemb = 1;
++ else if (__builtin_expect ((nmemb | size)
++ >= (((size_t) 1) << (__CHAR_BIT__
++ * sizeof (size_t) / 2)), 0)
++ && nmemb > __SIZE_MAX__ / size)
++ {
++ errno = ENOMEM;
++ os_error ("Integer overflow in xmallocarray");
++ }
++
++ return internal_malloc_size (nmemb * size);
++}
++
++static inline __attribute__((__always_inline__, __unused__))
++#include "intrinsics/reshape_packed.c"
++
++struct no_bounds_check { int bounds_check; };
++#define compile_options ((struct no_bounds_check) { .bounds_check = 0 })
++
++#define internal_error(x, y...) runtime_error (y)
++
++#endif
++
+ #endif /* LIBGFOR_H */
+--- libgfortran/runtime/nonshared-stop.c.jj 2014-05-09 15:14:49.863968070 +0200
++++ libgfortran/runtime/nonshared-stop.c 2014-05-09 15:14:49.863968070 +0200
+@@ -0,0 +1,93 @@
++/* Implementation of the STOP statement.
++ Copyright 2002-2014 Free Software Foundation, Inc.
++ Contributed by Paul Brook
++
++This file is part of the GNU Fortran 95 runtime library (libgfortran).
++
++Libgfortran 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 of the License, or (at your option) any later version.
++
++Libgfortran 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.
++
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
++
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++#define LIBGFORTRAN_NONSHARED
++#include "libgfortran.h"
++#include
++#include
++
++/* A numeric STOP statement. */
++
++extern void stop_numeric (GFC_INTEGER_4)
++ __attribute__ ((noreturn));
++export_proto(stop_numeric);
++
++/* A Fortran 2008 numeric STOP statement. */
++
++extern void stop_numeric_f08 (GFC_INTEGER_4)
++ __attribute__ ((noreturn));
++export_proto(stop_numeric_f08);
++
++void
++stop_numeric_f08 (GFC_INTEGER_4 code)
++{
++ /* Unfortunately we can't do much here. */
++ if (code == -1)
++ code = -1 ^ 256;
++ stop_numeric (code);
++}
++
++
++/* Per Fortran 2008, section 8.4: "Execution of a STOP statement initiates
++ normal termination of execution. Execution of an ERROR STOP statement
++ initiates error termination of execution." Thus, error_stop_string returns
++ a nonzero exit status code. */
++
++extern void error_stop_string (const char *, GFC_INTEGER_4)
++ __attribute__ ((noreturn));
++export_proto(error_stop_string);
++
++void
++error_stop_string (const char *string, GFC_INTEGER_4 len)
++{
++ (void) string;
++ (void) len;
++ stop_numeric (1);
++}
++
++
++/* A numeric ERROR STOP statement. */
++
++extern void error_stop_numeric (GFC_INTEGER_4)
++ __attribute__ ((noreturn));
++export_proto(error_stop_numeric);
++
++void
++error_stop_numeric (GFC_INTEGER_4 code)
++{
++ stop_numeric (code);
++}
++
++__attribute__((visibility ("hidden"))) void
++stop_string (const char *string, GFC_INTEGER_4 len)
++{
++ if (string)
++ {
++ (void) write (STDERR_FILENO, "STOP ", 5);
++ (void) write (STDERR_FILENO, string, len);
++ (void) write (STDERR_FILENO, "\n", 1);
++ }
++ exit (0);
++}
+--- libgfortran/runtime/nonshared-backtrace.c.jj 2014-05-09 15:14:49.863968070 +0200
++++ libgfortran/runtime/nonshared-backtrace.c 2014-05-09 15:17:27.141178917 +0200
+@@ -0,0 +1,326 @@
++/* Copyright (C) 2006-2014 Free Software Foundation, Inc.
++ Contributed by François-Xavier Coudert
++
++This file is part of the GNU Fortran runtime library (libgfortran).
++
++Libgfortran 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.
++
++Libgfortran 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.
++
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
++
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++#include "libgfortran.h"
++
++#include
++#include
++
++#ifdef HAVE_UNISTD_H
++#include
++#endif
++
++#ifdef HAVE_SYS_WAIT_H
++#include
++#endif
++
++#include
++
++#include "unwind.h"
++
++
++/* Macros for common sets of capabilities: can we fork and exec, and
++ can we use pipes to communicate with the subprocess. */
++#define CAN_FORK (defined(HAVE_FORK) && defined(HAVE_EXECVE) \
++ && defined(HAVE_WAIT))
++#define CAN_PIPE (CAN_FORK && defined(HAVE_PIPE) \
++ && defined(HAVE_DUP2) && defined(HAVE_CLOSE))
++
++#ifndef PATH_MAX
++#define PATH_MAX 4096
++#endif
++
++#define estr_write(str) write (STDERR_FILENO, str, strlen (str))
++
++
++/* GDB style #NUM index for each stack frame. */
++
++static void
++bt_header (int num)
++{
++ char buf[32];
++ snprintf (buf, sizeof buf, "#%d ", num);
++ estr_write (buf);
++}
++
++
++/* fgets()-like function that reads a line from a fd, without
++ needing to malloc() a buffer, and does not use locks, hence should
++ be async-signal-safe. */
++
++static char *
++fd_gets (char *s, int size, int fd)
++{
++ for (int i = 0; i < size; i++)
++ {
++ char c;
++ ssize_t nread = read (fd, &c, 1);
++ if (nread == 1)
++ {
++ s[i] = c;
++ if (c == '\n')
++ {
++ if (i + 1 < size)
++ s[i+1] = '\0';
++ else
++ s[i] = '\0';
++ break;
++ }
++ }
++ else
++ {
++ s[i] = '\0';
++ if (i == 0)
++ return NULL;
++ break;
++ }
++ }
++ return s;
++}
++
++
++/* Struct containing backtrace state. */
++typedef struct
++{
++ int frame_number;
++ int direct_output;
++ int outfd;
++ int infd;
++ int error;
++}
++bt_state;
++
++static inline const char *
++nonshared_gfc_xtoa (GFC_UINTEGER_LARGEST n, char *buffer,
++ size_t len __attribute__((unused)))
++{
++ int digit;
++ char *p;
++
++ if (n == 0)
++ return "0";
++
++ p = buffer + GFC_XTOA_BUF_SIZE - 1;
++ *p = '\0';
++
++ while (n != 0)
++ {
++ digit = n & 0xF;
++ if (digit > 9)
++ digit += 'A' - '0' - 10;
++
++ *--p = '0' + digit;
++ n >>= 4;
++ }
++
++ return p;
++}
++#define gfc_xtoa nonshared_gfc_xtoa
++
++static _Unwind_Reason_Code
++trace_function (struct _Unwind_Context *context, void *state_ptr)
++{
++ bt_state* state = (bt_state*) state_ptr;
++ _Unwind_Ptr ip;
++#ifdef HAVE_GETIPINFO
++ int ip_before_insn = 0;
++ ip = _Unwind_GetIPInfo (context, &ip_before_insn);
++
++ /* If the unwinder gave us a 'return' address, roll it back a little
++ to ensure we get the correct line number for the call itself. */
++ if (! ip_before_insn)
++ --ip;
++#else
++ ip = _Unwind_GetIP (context);
++#endif
++
++ if (state->direct_output)
++ {
++ char buf[32];
++ bt_header(state->frame_number);
++ snprintf (buf, sizeof buf, "%p\n", (void*) ip);
++ estr_write (buf);
++ }
++ else
++ {
++ char addr_buf[GFC_XTOA_BUF_SIZE], func[1024], file[PATH_MAX];
++ char *p;
++ const char* addr = gfc_xtoa (ip, addr_buf, sizeof (addr_buf));
++ write (state->outfd, addr, strlen (addr));
++ write (state->outfd, "\n", 1);
++
++ if (! fd_gets (func, sizeof(func), state->infd))
++ {
++ state->error = 1;
++ goto done;
++ }
++ if (! fd_gets (file, sizeof(file), state->infd))
++ {
++ state->error = 1;
++ goto done;
++ }
++
++ for (p = func; *p != '\n' && *p != '\r'; p++)
++ ;
++ *p = '\0';
++
++ /* _start is a setup routine that calls main(), and main() is
++ the frontend routine that calls some setup stuff and then
++ calls MAIN__, so at this point we should stop. */
++ if (strcmp (func, "_start") == 0 || strcmp (func, "main") == 0)
++ return _URC_END_OF_STACK;
++
++ bt_header (state->frame_number);
++ estr_write ("0x");
++ estr_write (addr);
++
++ if (func[0] != '?' && func[1] != '?')
++ {
++ estr_write (" in ");
++ estr_write (func);
++ }
++
++ if (strncmp (file, "??", 2) == 0)
++ estr_write ("\n");
++ else
++ {
++ estr_write (" at ");
++ estr_write (file);
++ }
++ }
++
++ done:
++
++ state->frame_number++;
++
++ return _URC_NO_REASON;
++}
++
++
++/* Display the backtrace. */
++
++void
++backtrace (void)
++{
++ bt_state state;
++ state.frame_number = 0;
++ state.error = 0;
++
++#if CAN_PIPE
++
++#ifndef PATH_MAX
++#define PATH_MAX 1024
++#endif
++
++#ifndef DIR_SEPARATOR
++#define DIR_SEPARATOR '/'
++#endif
++
++ char exe_path[PATH_MAX];
++
++ /* Reading the /proc/self/exe symlink is Linux-specific(?), but if
++ it works it gives the correct answer. */
++#ifdef HAVE_READLINK
++ int len;
++ if ((len = readlink ("/proc/self/exe", exe_path, sizeof (exe_path) - 1)) != -1)
++ exe_path[len] = '\0';
++ else
++#endif
++ goto fallback_noerr;
++
++ /* We attempt to extract file and line information from addr2line. */
++ do
++ {
++ /* Local variables. */
++ int f[2], pid, inp[2];
++
++ /* Don't output an error message if something goes wrong, we'll simply
++ fall back to printing the addresses. */
++ if (pipe (f) != 0)
++ break;
++ if (pipe (inp) != 0)
++ break;
++ if ((pid = fork ()) == -1)
++ break;
++
++ if (pid == 0)
++ {
++ /* Child process. */
++#define NUM_FIXEDARGS 7
++ char *arg[NUM_FIXEDARGS];
++
++ close (f[0]);
++
++ close (inp[1]);
++ if (dup2 (inp[0], STDIN_FILENO) == -1)
++ _exit (1);
++ close (inp[0]);
++
++ close (STDERR_FILENO);
++
++ if (dup2 (f[1], STDOUT_FILENO) == -1)
++ _exit (1);
++ close (f[1]);
++
++ arg[0] = (char *) "addr2line";
++ arg[1] = (char *) "-e";
++ arg[2] = exe_path;
++ arg[3] = (char *) "-f";
++ arg[4] = (char *) "-s";
++ arg[5] = (char *) "-C";
++ arg[6] = NULL;
++ execvp ("addr2line", arg);
++ _exit (1);
++#undef NUM_FIXEDARGS
++ }
++
++ /* Father process. */
++ close (f[1]);
++ close (inp[0]);
++
++ state.outfd = inp[1];
++ state.infd = f[0];
++ state.direct_output = 0;
++ _Unwind_Backtrace (trace_function, &state);
++ if (state.error)
++ goto fallback;
++ close (inp[1]);
++ close (f[0]);
++ wait (NULL);
++ return;
++
++fallback:
++ estr_write ("** Something went wrong while running addr2line. **\n"
++ "** Falling back to a simpler backtrace scheme. **\n");
++ }
++ while (0);
++
++fallback_noerr:
++#endif /* CAN_PIPE */
++
++ /* Fallback to the simple backtrace without addr2line. */
++ state.direct_output = 1;
++ _Unwind_Backtrace (trace_function, &state);
++}
++iexport(backtrace);
+--- libgfortran/Makefile.in.jj 2014-04-11 14:53:46.285365320 +0200
++++ libgfortran/Makefile.in 2014-05-09 15:14:49.882967623 +0200
+@@ -97,7 +97,7 @@ am__installdirs = "$(DESTDIR)$(cafexecli
+ "$(DESTDIR)$(myexeclibdir)" "$(DESTDIR)$(toolexeclibdir)" \
+ "$(DESTDIR)$(toolexeclibdir)"
+ LTLIBRARIES = $(cafexeclib_LTLIBRARIES) $(myexeclib_LTLIBRARIES) \
+- $(toolexeclib_LTLIBRARIES)
++ $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
+ libcaf_single_la_LIBADD =
+ am_libcaf_single_la_OBJECTS = single.lo
+ libcaf_single_la_OBJECTS = $(am_libcaf_single_la_OBJECTS)
+@@ -299,6 +299,107 @@ am__objects_48 = $(am__objects_1) $(am__
+ @onestep_FALSE@am_libgfortran_la_OBJECTS = $(am__objects_48)
+ @onestep_TRUE@am_libgfortran_la_OBJECTS = libgfortran_c.lo
+ libgfortran_la_OBJECTS = $(am_libgfortran_la_OBJECTS)
++libgfortran_nonshared_la_LIBADD =
++@LIBGFOR_BUILD_QUAD_TRUE@am__objects_49 = nonshared-_abs_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_abs_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_acosh_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_acos_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_aimag_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_aint_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_anint_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_asinh_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_asin_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_atan2_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_atanh_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_atan_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_conjg_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_cos_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_cosh_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_cos_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_dim_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_exp_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_exp_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_log10_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_log_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_log_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_mod_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_sign_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_sin_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_sinh_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_sin_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_sqrt_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_sqrt_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_tanh_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-_tan_r16.lo
++am__objects_50 = $(am__objects_49)
++@LIBGFOR_BUILD_QUAD_TRUE@am__objects_51 = nonshared-exponent_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-fraction_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-matmul_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-matmul_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-maxloc0_16_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-maxloc0_4_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-maxloc0_8_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-maxloc1_16_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-maxloc1_4_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-maxloc1_8_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-maxval_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-minloc0_16_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-minloc0_4_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-minloc0_8_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-minloc1_16_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-minloc1_4_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-minloc1_8_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-minval_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-nearest_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-pow_c16_i16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-pow_c16_i4.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-pow_c16_i8.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-pow_r16_i16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-pow_r16_i4.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-pow_r16_i8.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-product_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-product_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-reshape_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-reshape_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-rrspacing_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-set_exponent_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-spacing_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-sum_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-sum_r16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-transpose_c16.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-transpose_r16.lo
++am__objects_52 = $(am__objects_51) nonshared-bessel_r10.lo \
++ nonshared-bessel_r16.lo nonshared-bessel_r4.lo \
++ nonshared-bessel_r8.lo nonshared-iall_i1.lo \
++ nonshared-iall_i2.lo nonshared-iall_i4.lo nonshared-iall_i8.lo \
++ nonshared-iall_i16.lo nonshared-iany_i1.lo \
++ nonshared-iany_i2.lo nonshared-iany_i4.lo nonshared-iany_i8.lo \
++ nonshared-iany_i16.lo nonshared-iparity_i1.lo \
++ nonshared-iparity_i2.lo nonshared-iparity_i4.lo \
++ nonshared-iparity_i8.lo nonshared-iparity_i16.lo \
++ nonshared-norm2_r10.lo nonshared-norm2_r16.lo \
++ nonshared-norm2_r4.lo nonshared-norm2_r8.lo \
++ nonshared-parity_l16.lo nonshared-parity_l1.lo \
++ nonshared-parity_l2.lo nonshared-parity_l4.lo \
++ nonshared-parity_l8.lo
++am__objects_53 = nonshared-extends_type_of.lo
++am__objects_54 = nonshared-bounds.lo
++@LIBGFOR_BUILD_QUAD_TRUE@am__objects_55 = \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-iso_c_generated_procs.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-cpu_time.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-erfc_scaled.lo \
++@LIBGFOR_BUILD_QUAD_TRUE@ nonshared-random.lo
++@LIBGFOR_BUILD_QUAD_TRUE@am__objects_56 = nonshared-misc_specifics.lo
++am__objects_57 = $(am__objects_56)
++am__objects_58 = nonshared-selected_real_kind.lo
++am_libgfortran_nonshared_la_OBJECTS = $(am__objects_50) \
++ $(am__objects_52) $(am__objects_53) $(am__objects_54) \
++ $(am__objects_55) $(am__objects_57) $(am__objects_58) \
++ nonshared-execute_command_line.lo nonshared-shift.lo \
++ nonshared-transfer.lo nonshared-ftell2.lo \
++ nonshared-backtrace.lo nonshared-stop.lo
++libgfortran_nonshared_la_OBJECTS = \
++ $(am_libgfortran_nonshared_la_OBJECTS)
+ libgfortranbegin_la_LIBADD =
+ am_libgfortranbegin_la_OBJECTS = fmain.lo
+ libgfortranbegin_la_OBJECTS = $(am_libgfortranbegin_la_OBJECTS)
+@@ -328,6 +429,7 @@ FCCOMPILE = $(FC) $(AM_FCFLAGS) $(FCFLAG
+ LTFCCOMPILE = $(LIBTOOL) --tag=FC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS)
+ SOURCES = $(libcaf_single_la_SOURCES) $(libgfortran_la_SOURCES) \
++ $(libgfortran_nonshared_la_SOURCES) \
+ $(libgfortranbegin_la_SOURCES)
+ MULTISRCTOP =
+ MULTIBUILDTOP =
+@@ -498,6 +600,7 @@ LTLDFLAGS = $(shell $(SHELL) $(top_srcdi
+ $(lt_host_flags)
+
+ toolexeclib_LTLIBRARIES = libgfortran.la
++noinst_LTLIBRARIES = libgfortran_nonshared.la
+ toolexeclib_DATA = libgfortran.spec
+ libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
+ libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+@@ -1272,6 +1375,151 @@ prereq_SRC = $(gfor_src) $(gfor_built_sr
+ #libgfortran_F.lo:
+ # $(LTPPFCCOMPILE) -c -o $@ $^ -combine
+ @onestep_TRUE@libgfortran_la_SOURCES = libgfortran_c.c $(filter-out %.c,$(prereq_SRC))
++@LIBGFOR_BUILD_QUAD_FALSE@nonshared_generated_quad_F90_SRC =
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared_generated_quad_F90_SRC = \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_abs_c16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_abs_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_acosh_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_acos_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_aimag_c16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_aint_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_anint_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_asinh_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_asin_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_atan2_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_atanh_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_atan_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_conjg_c16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_cos_c16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_cosh_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_cos_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_dim_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_exp_c16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_exp_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_log10_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_log_c16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_log_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_mod_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_sign_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_sin_c16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_sinh_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_sin_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_sqrt_c16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_sqrt_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_tanh_r16.F90 \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-_tan_r16.F90
++
++@LIBGFOR_BUILD_QUAD_FALSE@nonshared_generated_quad_C_SRC =
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared_generated_quad_C_SRC = \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-exponent_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-fraction_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-matmul_c16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-matmul_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-maxloc0_16_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-maxloc0_4_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-maxloc0_8_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-maxloc1_16_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-maxloc1_4_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-maxloc1_8_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-maxval_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-minloc0_16_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-minloc0_4_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-minloc0_8_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-minloc1_16_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-minloc1_4_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-minloc1_8_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-minval_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-nearest_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-pow_c16_i16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-pow_c16_i4.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-pow_c16_i8.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-pow_r16_i16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-pow_r16_i4.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-pow_r16_i8.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-product_c16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-product_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-reshape_c16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-reshape_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-rrspacing_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-set_exponent_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-spacing_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-sum_c16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-sum_r16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-transpose_c16.c \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-transpose_r16.c
++
++@LIBGFOR_BUILD_QUAD_FALSE@nonshared_generated_special_quad_F90_SRC =
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared_generated_special_quad_F90_SRC = \
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared-misc_specifics.F90
++
++@LIBGFOR_BUILD_QUAD_FALSE@nonshared_quad_SRC =
++@LIBGFOR_BUILD_QUAD_TRUE@nonshared_quad_SRC = \
++@LIBGFOR_BUILD_QUAD_TRUE@$(srcdir)/intrinsics/nonshared-iso_c_generated_procs.c \
++@LIBGFOR_BUILD_QUAD_TRUE@$(srcdir)/intrinsics/nonshared-cpu_time.c \
++@LIBGFOR_BUILD_QUAD_TRUE@$(srcdir)/intrinsics/nonshared-erfc_scaled.c \
++@LIBGFOR_BUILD_QUAD_TRUE@$(srcdir)/intrinsics/nonshared-random.c
++
++nonshared_generated_F90_SRC = \
++$(nonshared_generated_quad_F90_SRC)
++
++nonshared_generated_special_F90_SRC = \
++$(nonshared_generated_special_quad_F90_SRC)
++
++nonshared_intrinsics_special_F90_SRC = \
++nonshared-selected_real_kind.F90
++
++nonshared_generated_C_SRC = \
++$(nonshared_generated_quad_C_SRC) \
++nonshared-bessel_r10.c \
++nonshared-bessel_r16.c \
++nonshared-bessel_r4.c \
++nonshared-bessel_r8.c \
++nonshared-iall_i1.c \
++nonshared-iall_i2.c \
++nonshared-iall_i4.c \
++nonshared-iall_i8.c \
++nonshared-iall_i16.c \
++nonshared-iany_i1.c \
++nonshared-iany_i2.c \
++nonshared-iany_i4.c \
++nonshared-iany_i8.c \
++nonshared-iany_i16.c \
++nonshared-iparity_i1.c \
++nonshared-iparity_i2.c \
++nonshared-iparity_i4.c \
++nonshared-iparity_i8.c \
++nonshared-iparity_i16.c \
++nonshared-norm2_r10.c \
++nonshared-norm2_r16.c \
++nonshared-norm2_r4.c \
++nonshared-norm2_r8.c \
++nonshared-parity_l16.c \
++nonshared-parity_l1.c \
++nonshared-parity_l2.c \
++nonshared-parity_l4.c \
++nonshared-parity_l8.c
++
++nonshared_intrinsics_C_SRC = \
++nonshared-extends_type_of.c
++
++nonshared_runtime_C_SRC = \
++nonshared-bounds.c
++
++libgfortran_nonshared_la_SOURCES = \
++$(nonshared_generated_F90_SRC) \
++$(nonshared_generated_C_SRC) \
++$(nonshared_intrinsics_C_SRC) \
++$(nonshared_runtime_C_SRC) \
++$(nonshared_quad_SRC) \
++$(nonshared_generated_special_F90_SRC) \
++$(nonshared_intrinsics_special_F90_SRC) \
++$(srcdir)/intrinsics/nonshared-execute_command_line.c \
++$(srcdir)/intrinsics/nonshared-shift.c \
++$(srcdir)/io/nonshared-transfer.c \
++$(srcdir)/io/nonshared-ftell2.c \
++$(srcdir)/runtime/nonshared-backtrace.c \
++$(srcdir)/runtime/nonshared-stop.c
++
+ I_M4_DEPS = m4/iparm.m4
+ I_M4_DEPS0 = $(I_M4_DEPS) m4/iforeach.m4
+ I_M4_DEPS1 = $(I_M4_DEPS) m4/ifunction.m4
+@@ -1395,6 +1643,15 @@ clean-myexeclibLTLIBRARIES:
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
++
++clean-noinstLTLIBRARIES:
++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
++ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
++ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
++ test "$$dir" != "$$p" || dir=.; \
++ echo "rm -f \"$${dir}/so_locations\""; \
++ rm -f "$${dir}/so_locations"; \
++ done
+ install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(toolexeclibdir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)"
+@@ -1430,7 +1687,9 @@ libcaf_single.la: $(libcaf_single_la_OBJ
+ $(libcaf_single_la_LINK) -rpath $(cafexeclibdir) $(libcaf_single_la_OBJECTS) $(libcaf_single_la_LIBADD) $(LIBS)
+ libgfortran.la: $(libgfortran_la_OBJECTS) $(libgfortran_la_DEPENDENCIES) $(EXTRA_libgfortran_la_DEPENDENCIES)
+ $(libgfortran_la_LINK) -rpath $(toolexeclibdir) $(libgfortran_la_OBJECTS) $(libgfortran_la_LIBADD) $(LIBS)
+-libgfortranbegin.la: $(libgfortranbegin_la_OBJECTS) $(libgfortranbegin_la_DEPENDENCIES) $(EXTRA_libgfortranbegin_la_DEPENDENCIES)
++libgfortran_nonshared.la: $(libgfortran_nonshared_la_OBJECTS) $(libgfortran_nonshared_la_DEPENDENCIES) $(EXTRA_libgfortran_nonshared_la_DEPENDENCIES)
++ $(FCLINK) $(libgfortran_nonshared_la_OBJECTS) $(libgfortran_nonshared_la_LIBADD) $(LIBS)
++libgfortranbegin.la: $(libgfortranbegin_la_OBJECTS) $(libgfortranbegin_la_DEPENDENCIES) $(EXTRA_libgfortran_la_DEPENDENCIES)
+ $(libgfortranbegin_la_LINK) -rpath $(myexeclibdir) $(libgfortranbegin_la_OBJECTS) $(libgfortranbegin_la_LIBADD) $(LIBS)
+
+ mostlyclean-compile:
+@@ -1733,6 +1992,82 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nearest_r16.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nearest_r4.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nearest_r8.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-backtrace.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-bessel_r10.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-bessel_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-bessel_r4.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-bessel_r8.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-bounds.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-cpu_time.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-erfc_scaled.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-execute_command_line.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-exponent_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-extends_type_of.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-fraction_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-ftell2.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iall_i1.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iall_i16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iall_i2.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iall_i4.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iall_i8.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iany_i1.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iany_i16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iany_i2.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iany_i4.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iany_i8.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iparity_i1.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iparity_i16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iparity_i2.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iparity_i4.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iparity_i8.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-iso_c_generated_procs.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-matmul_c16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-matmul_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-maxloc0_16_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-maxloc0_4_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-maxloc0_8_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-maxloc1_16_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-maxloc1_4_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-maxloc1_8_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-maxval_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-minloc0_16_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-minloc0_4_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-minloc0_8_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-minloc1_16_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-minloc1_4_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-minloc1_8_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-minval_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-nearest_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-norm2_r10.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-norm2_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-norm2_r4.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-norm2_r8.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-parity_l1.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-parity_l16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-parity_l2.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-parity_l4.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-parity_l8.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-pow_c16_i16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-pow_c16_i4.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-pow_c16_i8.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-pow_r16_i16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-pow_r16_i4.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-pow_r16_i8.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-product_c16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-product_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-random.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-reshape_c16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-reshape_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-rrspacing_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-set_exponent_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-shift.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-spacing_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-stop.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-sum_c16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-sum_r16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-transfer.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-transpose_c16.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nonshared-transpose_r16.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/norm2_r10.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/norm2_r16.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/norm2_r4.Plo@am__quote@
+@@ -5630,6 +5965,76 @@ in_unpack_generic.lo: runtime/in_unpack_
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o in_unpack_generic.lo `test -f 'runtime/in_unpack_generic.c' || echo '$(srcdir)/'`runtime/in_unpack_generic.c
+
++nonshared-iso_c_generated_procs.lo: $(srcdir)/intrinsics/nonshared-iso_c_generated_procs.c
++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-iso_c_generated_procs.lo -MD -MP -MF $(DEPDIR)/nonshared-iso_c_generated_procs.Tpo -c -o nonshared-iso_c_generated_procs.lo `test -f '$(srcdir)/intrinsics/nonshared-iso_c_generated_procs.c' || echo '$(srcdir)/'`$(srcdir)/intrinsics/nonshared-iso_c_generated_procs.c
++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nonshared-iso_c_generated_procs.Tpo $(DEPDIR)/nonshared-iso_c_generated_procs.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/intrinsics/nonshared-iso_c_generated_procs.c' object='nonshared-iso_c_generated_procs.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-iso_c_generated_procs.lo `test -f '$(srcdir)/intrinsics/nonshared-iso_c_generated_procs.c' || echo '$(srcdir)/'`$(srcdir)/intrinsics/nonshared-iso_c_generated_procs.c
++
++nonshared-cpu_time.lo: $(srcdir)/intrinsics/nonshared-cpu_time.c
++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-cpu_time.lo -MD -MP -MF $(DEPDIR)/nonshared-cpu_time.Tpo -c -o nonshared-cpu_time.lo `test -f '$(srcdir)/intrinsics/nonshared-cpu_time.c' || echo '$(srcdir)/'`$(srcdir)/intrinsics/nonshared-cpu_time.c
++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nonshared-cpu_time.Tpo $(DEPDIR)/nonshared-cpu_time.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/intrinsics/nonshared-cpu_time.c' object='nonshared-cpu_time.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-cpu_time.lo `test -f '$(srcdir)/intrinsics/nonshared-cpu_time.c' || echo '$(srcdir)/'`$(srcdir)/intrinsics/nonshared-cpu_time.c
++
++nonshared-erfc_scaled.lo: $(srcdir)/intrinsics/nonshared-erfc_scaled.c
++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-erfc_scaled.lo -MD -MP -MF $(DEPDIR)/nonshared-erfc_scaled.Tpo -c -o nonshared-erfc_scaled.lo `test -f '$(srcdir)/intrinsics/nonshared-erfc_scaled.c' || echo '$(srcdir)/'`$(srcdir)/intrinsics/nonshared-erfc_scaled.c
++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nonshared-erfc_scaled.Tpo $(DEPDIR)/nonshared-erfc_scaled.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/intrinsics/nonshared-erfc_scaled.c' object='nonshared-erfc_scaled.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-erfc_scaled.lo `test -f '$(srcdir)/intrinsics/nonshared-erfc_scaled.c' || echo '$(srcdir)/'`$(srcdir)/intrinsics/nonshared-erfc_scaled.c
++
++nonshared-random.lo: $(srcdir)/intrinsics/nonshared-random.c
++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-random.lo -MD -MP -MF $(DEPDIR)/nonshared-random.Tpo -c -o nonshared-random.lo `test -f '$(srcdir)/intrinsics/nonshared-random.c' || echo '$(srcdir)/'`$(srcdir)/intrinsics/nonshared-random.c
++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nonshared-random.Tpo $(DEPDIR)/nonshared-random.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/intrinsics/nonshared-random.c' object='nonshared-random.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-random.lo `test -f '$(srcdir)/intrinsics/nonshared-random.c' || echo '$(srcdir)/'`$(srcdir)/intrinsics/nonshared-random.c
++
++nonshared-execute_command_line.lo: $(srcdir)/intrinsics/nonshared-execute_command_line.c
++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-execute_command_line.lo -MD -MP -MF $(DEPDIR)/nonshared-execute_command_line.Tpo -c -o nonshared-execute_command_line.lo `test -f '$(srcdir)/intrinsics/nonshared-execute_command_line.c' || echo '$(srcdir)/'`$(srcdir)/intrinsics/nonshared-execute_command_line.c
++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nonshared-execute_command_line.Tpo $(DEPDIR)/nonshared-execute_command_line.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/intrinsics/nonshared-execute_command_line.c' object='nonshared-execute_command_line.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-execute_command_line.lo `test -f '$(srcdir)/intrinsics/nonshared-execute_command_line.c' || echo '$(srcdir)/'`$(srcdir)/intrinsics/nonshared-execute_command_line.c
++
++nonshared-shift.lo: $(srcdir)/intrinsics/nonshared-shift.c
++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-shift.lo -MD -MP -MF $(DEPDIR)/nonshared-shift.Tpo -c -o nonshared-shift.lo `test -f '$(srcdir)/intrinsics/nonshared-shift.c' || echo '$(srcdir)/'`$(srcdir)/intrinsics/nonshared-shift.c
++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nonshared-shift.Tpo $(DEPDIR)/nonshared-shift.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/intrinsics/nonshared-shift.c' object='nonshared-shift.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-shift.lo `test -f '$(srcdir)/intrinsics/nonshared-shift.c' || echo '$(srcdir)/'`$(srcdir)/intrinsics/nonshared-shift.c
++
++nonshared-transfer.lo: $(srcdir)/io/nonshared-transfer.c
++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-transfer.lo -MD -MP -MF $(DEPDIR)/nonshared-transfer.Tpo -c -o nonshared-transfer.lo `test -f '$(srcdir)/io/nonshared-transfer.c' || echo '$(srcdir)/'`$(srcdir)/io/nonshared-transfer.c
++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nonshared-transfer.Tpo $(DEPDIR)/nonshared-transfer.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/io/nonshared-transfer.c' object='nonshared-transfer.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-transfer.lo `test -f '$(srcdir)/io/nonshared-transfer.c' || echo '$(srcdir)/'`$(srcdir)/io/nonshared-transfer.c
++
++nonshared-ftell2.lo: $(srcdir)/io/nonshared-ftell2.c
++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-ftell2.lo -MD -MP -MF $(DEPDIR)/nonshared-ftell2.Tpo -c -o nonshared-ftell2.lo `test -f '$(srcdir)/io/nonshared-ftell2.c' || echo '$(srcdir)/'`$(srcdir)/io/nonshared-ftell2.c
++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nonshared-ftell2.Tpo $(DEPDIR)/nonshared-ftell2.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/io/nonshared-ftell2.c' object='nonshared-ftell2.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-ftell2.lo `test -f '$(srcdir)/io/nonshared-ftell2.c' || echo '$(srcdir)/'`$(srcdir)/io/nonshared-ftell2.c
++
++nonshared-backtrace.lo: $(srcdir)/runtime/nonshared-backtrace.c
++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-backtrace.lo -MD -MP -MF $(DEPDIR)/nonshared-backtrace.Tpo -c -o nonshared-backtrace.lo `test -f '$(srcdir)/runtime/nonshared-backtrace.c' || echo '$(srcdir)/'`$(srcdir)/runtime/nonshared-backtrace.c
++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nonshared-backtrace.Tpo $(DEPDIR)/nonshared-backtrace.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/runtime/nonshared-backtrace.c' object='nonshared-backtrace.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-backtrace.lo `test -f '$(srcdir)/runtime/nonshared-backtrace.c' || echo '$(srcdir)/'`$(srcdir)/runtime/nonshared-backtrace.c
++
++nonshared-stop.lo: $(srcdir)/runtime/nonshared-stop.c
++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nonshared-stop.lo -MD -MP -MF $(DEPDIR)/nonshared-stop.Tpo -c -o nonshared-stop.lo `test -f '$(srcdir)/runtime/nonshared-stop.c' || echo '$(srcdir)/'`$(srcdir)/runtime/nonshared-stop.c
++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nonshared-stop.Tpo $(DEPDIR)/nonshared-stop.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/runtime/nonshared-stop.c' object='nonshared-stop.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nonshared-stop.lo `test -f '$(srcdir)/runtime/nonshared-stop.c' || echo '$(srcdir)/'`$(srcdir)/runtime/nonshared-stop.c
++
+ .f90.o:
+ $(FCCOMPILE) -c -o $@ $<
+
+@@ -5786,8 +6191,8 @@ maintainer-clean-generic:
+ clean: clean-am clean-multi
+
+ clean-am: clean-cafexeclibLTLIBRARIES clean-generic clean-libtool \
+- clean-myexeclibLTLIBRARIES clean-toolexeclibLTLIBRARIES \
+- mostlyclean-am
++ clean-myexeclibLTLIBRARIES clean-noinstLTLIBRARIES \
++ clean-toolexeclibLTLIBRARIES mostlyclean-am
+
+ distclean: distclean-am distclean-multi
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+@@ -5868,7 +6273,7 @@ uninstall-am: uninstall-cafexeclibLTLIBR
+
+ .PHONY: CTAGS GTAGS all all-am all-multi am--refresh check check-am \
+ clean clean-cafexeclibLTLIBRARIES clean-generic clean-libtool \
+- clean-multi clean-myexeclibLTLIBRARIES \
++ clean-multi clean-myexeclibLTLIBRARIES clean-noinstLTLIBRARIES \
+ clean-toolexeclibLTLIBRARIES ctags distclean distclean-compile \
+ distclean-generic distclean-hdr distclean-libtool \
+ distclean-multi distclean-tags dvi dvi-am html html-am info \
+@@ -5913,6 +6318,54 @@ selected_real_kind.lo selected_int_kind.
+ @onestep_TRUE@libgfortran_c.lo: $(filter %.c,$(prereq_SRC))
+ @onestep_TRUE@ $(LTCOMPILE) -c -o $@ $^ -combine
+
++$(patsubst %.c,%.lo,$(nonshared_generated_C_SRC) $(nonshared)): \
++nonshared-%.lo: $(srcdir)/generated/%.c
++ $(LTCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED
++
++$(patsubst %.c,%.o,$(nonshared_generated_C_SRC) $(nonshared)): \
++nonshared-%.o: $(srcdir)/generated/%.c
++ $(COMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED
++
++$(patsubst %.F90,%.lo,$(nonshared_generated_F90_SRC) $(nonshared)): \
++nonshared-%.lo: $(srcdir)/generated/%.F90
++ $(LTPPFCCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED -fallow-leading-underscore
++
++$(patsubst %.F90,%.o,$(nonshared_generated_F90_SRC) $(nonshared)): \
++nonshared-%.o: $(srcdir)/generated/%.F90
++ $(PPFCCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED -fallow-leading-underscore
++
++$(patsubst %.c,%.lo,$(nonshared_intrinsics_C_SRC) $(nonshared)): \
++nonshared-%.lo: $(srcdir)/intrinsics/%.c
++ $(LTCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED
++
++$(patsubst %.c,%.o,$(nonshared_intrinsics_C_SRC) $(nonshared)): \
++nonshared-%.o: $(srcdir)/intrinsics/%.c
++ $(COMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED
++
++$(patsubst %.c,%.lo,$(nonshared_runtime_C_SRC) $(nonshared)): \
++nonshared-%.lo: $(srcdir)/runtime/%.c
++ $(LTCOMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED
++
++$(patsubst %.c,%.o,$(nonshared_runtime_C_SRC) $(nonshared)): \
++nonshared-%.o: $(srcdir)/runtime/%.c
++ $(COMPILE) -c -o $@ $< -DLIBGFORTRAN_NONSHARED
++
++$(patsubst %.F90,%.lo,$(nonshared_generated_special_F90_SRC) $(nonshared)): \
++nonshared-%.lo: $(srcdir)/generated/nonshared-%.F90
++ $(LTPPFCCOMPILE) -c -o $@ $< -fallow-leading-underscore
++
++$(patsubst %.F90,%.o,$(nonshared_generated_special_F90_SRC) $(nonshared)): \
++nonshared-%.o: $(srcdir)/generated/nonshared-%.F90
++ $(PPFCCOMPILE) -c -o $@ $< -fallow-leading-underscore
++
++$(patsubst %.F90,%.lo,$(nonshared_intrinsics_special_F90_SRC) $(nonshared)): \
++nonshared-%.lo: $(srcdir)/intrinsics/nonshared-%.F90
++ $(LTPPFCCOMPILE) -c -o $@ $< -fallow-leading-underscore
++
++$(patsubst %.F90,%.o,$(nonshared_intrinsics_special_F90_SRC) $(nonshared)): \
++nonshared-%.o: $(srcdir)/intrinsics/nonshared-%.F90
++ $(PPFCCOMPILE) -c -o $@ $< -fallow-leading-underscore
++
+ kinds.h: $(srcdir)/mk-kinds-h.sh
+ $(SHELL) $(srcdir)/mk-kinds-h.sh '$(FCCOMPILE)' > $@ || rm $@
+
+--- libgfortran/generated/nonshared-misc_specifics.F90.jj 2014-05-09 15:14:49.883967635 +0200
++++ libgfortran/generated/nonshared-misc_specifics.F90 2014-05-09 15:14:49.883967635 +0200
+@@ -0,0 +1,53 @@
++! Copyright 2002-2014 Free Software Foundation, Inc.
++! Contributed by Paul Brook
++!
++!This file is part of the GNU Fortran 95 runtime library (libgfortran).
++!
++!GNU libgfortran 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 of the License, or (at your option) any later version.
++!
++!GNU libgfortran 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.
++!
++!Under Section 7 of GPL version 3, you are granted additional
++!permissions described in the GCC Runtime Library Exception, version
++!3.1, as published by the Free Software Foundation.
++!
++!You should have received a copy of the GNU General Public License and
++!a copy of the GCC Runtime Library Exception along with this program;
++!see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++! .
++
++#include "config.h"
++#include "kinds.inc"
++
++
++
++
++#if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_INTEGER_4)
++elemental function _gfortran_specific__nint_4_16 (parm)
++ real (kind=16) , intent (in) :: parm
++ integer (kind=4) :: _gfortran_specific__nint_4_16
++ _gfortran_specific__nint_4_16 = nint (parm)
++end function
++#endif
++
++#if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_INTEGER_8)
++elemental function _gfortran_specific__nint_8_16 (parm)
++ real (kind=16) , intent (in) :: parm
++ integer (kind=8) :: _gfortran_specific__nint_8_16
++ _gfortran_specific__nint_8_16 = nint (parm)
++end function
++#endif
++
++#if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_INTEGER_16)
++elemental function _gfortran_specific__nint_16_16 (parm)
++ real (kind=16) , intent (in) :: parm
++ integer (kind=16) :: _gfortran_specific__nint_16_16
++ _gfortran_specific__nint_16_16 = nint (parm)
++end function
++#endif
+--- libgfortran/io/nonshared-transfer.c.jj 2014-05-09 15:14:49.883967635 +0200
++++ libgfortran/io/nonshared-transfer.c 2014-05-09 15:14:49.883967635 +0200
+@@ -0,0 +1,117 @@
++/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
++ Contributed by Andy Vaught
++ Namelist transfer functions contributed by Paul Thomas
++ F2003 I/O support contributed by Jerry DeLisle
++
++This file is part of the GNU Fortran runtime library (libgfortran).
++
++Libgfortran 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.
++
++Libgfortran 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.
++
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
++
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++
++#define LIBGFORTRAN_NONSHARED
++#include "io.h"
++
++extern void transfer_integer (st_parameter_dt *, void *, int);
++export_proto(transfer_integer);
++
++extern void transfer_integer_write (st_parameter_dt *, void *, int);
++export_proto(transfer_integer_write);
++
++extern void transfer_real (st_parameter_dt *, void *, int);
++export_proto(transfer_real);
++
++extern void transfer_real_write (st_parameter_dt *, void *, int);
++export_proto(transfer_real_write);
++
++extern void transfer_logical (st_parameter_dt *, void *, int);
++export_proto(transfer_logical);
++
++extern void transfer_logical_write (st_parameter_dt *, void *, int);
++export_proto(transfer_logical_write);
++
++extern void transfer_character (st_parameter_dt *, void *, int);
++export_proto(transfer_character);
++
++extern void transfer_character_write (st_parameter_dt *, void *, int);
++export_proto(transfer_character_write);
++
++extern void transfer_character_wide (st_parameter_dt *, void *, int, int);
++export_proto(transfer_character_wide);
++
++extern void transfer_character_wide_write (st_parameter_dt *,
++ void *, int, int);
++export_proto(transfer_character_wide_write);
++
++extern void transfer_complex (st_parameter_dt *, void *, int);
++export_proto(transfer_complex);
++
++extern void transfer_complex_write (st_parameter_dt *, void *, int);
++export_proto(transfer_complex_write);
++
++extern void transfer_array (st_parameter_dt *, gfc_array_char *, int,
++ gfc_charlen_type);
++export_proto(transfer_array);
++
++extern void transfer_array_write (st_parameter_dt *, gfc_array_char *, int,
++ gfc_charlen_type);
++export_proto(transfer_array_write);
++
++void
++transfer_integer_write (st_parameter_dt *dtp, void *p, int kind)
++{
++ transfer_integer (dtp, p, kind);
++}
++
++void
++transfer_real_write (st_parameter_dt *dtp, void *p, int kind)
++{
++ transfer_real (dtp, p, kind);
++}
++
++void
++transfer_logical_write (st_parameter_dt *dtp, void *p, int kind)
++{
++ transfer_logical (dtp, p, kind);
++}
++
++void
++transfer_character_write (st_parameter_dt *dtp, void *p, int len)
++{
++ transfer_character (dtp, p, len);
++}
++
++void
++transfer_character_wide_write (st_parameter_dt *dtp, void *p, int len, int kind)
++{
++ transfer_character_wide (dtp, p, len, kind);
++}
++
++void
++transfer_complex_write (st_parameter_dt *dtp, void *p, int kind)
++{
++ transfer_complex (dtp, p, kind);
++}
++
++void
++transfer_array_write (st_parameter_dt *dtp, gfc_array_char *desc, int kind,
++ gfc_charlen_type charlen)
++{
++ transfer_array (dtp, desc, kind, charlen);
++}
+--- libgfortran/io/nonshared-ftell2.c.jj 2014-05-09 15:14:49.883967635 +0200
++++ libgfortran/io/nonshared-ftell2.c 2014-05-09 15:14:49.883967635 +0200
+@@ -0,0 +1,58 @@
++/* Implementation of the FTELL intrinsic.
++ Copyright (C) 2005-2014 Free Software Foundation, Inc.
++
++This file is part of the GNU Fortran runtime library (libgfortran).
++
++Libgfortran 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 of the License, or (at your option) any later version.
++
++Libgfortran 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.
++
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
++
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++#include "io.h"
++#include "fbuf.h"
++#include "unix.h"
++#include
++#include
++#include
++
++
++/* Here is the ftell function with an incorrect return type; retained
++ due to ABI compatibility. */
++
++extern size_t PREFIX(ftell) (int *);
++
++/* Here is the ftell function with the correct return type, ensuring
++ that large files can be supported as long as the target supports
++ large integers; as of 4.8 the FTELL intrinsic function will call
++ this one instead of the old ftell above. */
++
++extern GFC_IO_INT PREFIX(ftell2) (int *);
++
++GFC_IO_INT
++PREFIX(ftell2) (int * unit)
++{
++ if (sizeof (GFC_IO_INT) == sizeof (size_t))
++ return PREFIX(ftell) (unit);
++ else
++ {
++ GFC_IO_INT (*fn) (int *)
++ = (GFC_IO_INT (*) (int *)) dlsym (RTLD_NEXT, "_gfortran_ftell2");
++ if (fn)
++ return fn (unit);
++ return PREFIX(ftell) (unit);
++ }
++}
+--- libgfortran/intrinsics/nonshared-random.c.jj 2014-05-09 15:14:49.883967635 +0200
++++ libgfortran/intrinsics/nonshared-random.c 2014-05-09 15:14:49.883967635 +0200
+@@ -0,0 +1,142 @@
++/* Implementation of the RANDOM intrinsics
++ Copyright 2002-2014 Free Software Foundation, Inc.
++ Contributed by Lars Segerlund
++ and Steve Kargl.
++
++This file is part of the GNU Fortran runtime library (libgfortran).
++
++Libgfortran 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 of the License, or (at your option) any later version.
++
++Ligbfortran 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.
++
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
++
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++#define LIBGFORTRAN_NONSHARED
++#include "libgfortran.h"
++#include
++#include
++
++#if defined HAVE_GFC_REAL_10 && defined HAVE_GFC_REAL_16 \
++ && GFC_REAL_10_RADIX == 2 && GFC_REAL_10_DIGITS == 64
++extern void random_r10 (GFC_REAL_10 *);
++iexport_proto(random_r10);
++
++extern void random_r16 (GFC_REAL_16 *);
++iexport_proto(random_r16);
++
++extern void arandom_r16 (gfc_array_r16 *);
++export_proto(arandom_r16);
++
++/* For REAL(KIND=16), we only need to mask off the lower bits. */
++
++static inline void
++rnumber_16 (GFC_REAL_16 *f, GFC_UINTEGER_8 v1, GFC_UINTEGER_8 v2)
++{
++ GFC_UINTEGER_8 mask;
++#if GFC_REAL_16_RADIX == 2
++ mask = ~ (GFC_UINTEGER_8) 0u << (128 - GFC_REAL_16_DIGITS);
++#elif GFC_REAL_16_RADIX == 16
++ mask = ~ (GFC_UINTEGER_8) 0u << ((32 - GFC_REAL_16_DIGITS) * 4);
++#else
++#error "GFC_REAL_16_RADIX has unknown value"
++#endif
++ v2 = v2 & mask;
++ *f = (GFC_REAL_16) v1 * GFC_REAL_16_LITERAL(0x1.p-64)
++ + (GFC_REAL_16) v2 * GFC_REAL_16_LITERAL(0x1.p-128);
++}
++
++/* This function produces a REAL(16) value from the uniform distribution
++ with range [0,1). */
++
++void
++random_r16 (GFC_REAL_16 *x)
++{
++ GFC_UINTEGER_8 kiss1, kiss2;
++ GFC_REAL_10 num1, num2;
++
++ random_r10 (&num1);
++ random_r10 (&num2);
++ num1 *= GFC_REAL_10_LITERAL(0x1.p64);
++ num2 *= GFC_REAL_10_LITERAL(0x1.p64);
++ kiss1 = num1;
++ kiss2 = num2;
++
++ rnumber_16 (x, kiss1, kiss2);
++}
++iexport(random_r16);
++
++/* This function fills a REAL(16) array with values from the uniform
++ distribution with range [0,1). */
++
++void
++arandom_r16 (gfc_array_r16 *x)
++{
++ index_type count[GFC_MAX_DIMENSIONS];
++ index_type extent[GFC_MAX_DIMENSIONS];
++ index_type stride[GFC_MAX_DIMENSIONS];
++ index_type stride0;
++ index_type dim;
++ GFC_REAL_16 *dest;
++ int n;
++
++ dest = x->base_addr;
++
++ dim = GFC_DESCRIPTOR_RANK (x);
++
++ for (n = 0; n < dim; n++)
++ {
++ count[n] = 0;
++ stride[n] = GFC_DESCRIPTOR_STRIDE(x,n);
++ extent[n] = GFC_DESCRIPTOR_EXTENT(x,n);
++ if (extent[n] <= 0)
++ return;
++ }
++
++ stride0 = stride[0];
++
++ while (dest)
++ {
++ random_r16 (dest);
++
++ /* Advance to the next element. */
++ dest += stride0;
++ count[0]++;
++ /* Advance to the next source element. */
++ n = 0;
++ while (count[n] == extent[n])
++ {
++ /* When we get to the end of a dimension, reset it and increment
++ the next dimension. */
++ count[n] = 0;
++ /* We could precalculate these products, but this is a less
++ frequently used path so probably not worth it. */
++ dest -= stride[n] * extent[n];
++ n++;
++ if (n == dim)
++ {
++ dest = NULL;
++ break;
++ }
++ else
++ {
++ count[n]++;
++ dest += stride[n];
++ }
++ }
++ }
++}
++
++#endif
+--- libgfortran/intrinsics/nonshared-selected_real_kind.F90.jj 2014-05-09 15:14:49.883967635 +0200
++++ libgfortran/intrinsics/nonshared-selected_real_kind.F90 2014-05-09 15:14:49.883967635 +0200
+@@ -0,0 +1,79 @@
++! Copyright 2003-2014 Free Software Foundation, Inc.
++! Contributed by Kejia Zhao
++!
++!This file is part of the GNU Fortran runtime library (libgfortran).
++!
++!Libgfortran 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 of the License, or (at your option) any later version.
++!
++!Libgfortran 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.
++!
++!Under Section 7 of GPL version 3, you are granted additional
++!permissions described in the GCC Runtime Library Exception, version
++!3.1, as published by the Free Software Foundation.
++!
++!You should have received a copy of the GNU General Public License and
++!a copy of the GCC Runtime Library Exception along with this program;
++!see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++! .
++
++function _gfortran_selected_real_kind2008 (p, r, rdx)
++ implicit none
++ integer, optional, intent (in) :: p, r, rdx
++ integer :: _gfortran_selected_real_kind2008
++ integer :: i, p2, r2, radix2
++ logical :: found_p, found_r, found_radix
++ ! Real kind_precision_range table
++ type :: real_info
++ integer :: kind
++ integer :: precision
++ integer :: range
++ integer :: radix
++ end type real_info
++
++ include "selected_real_kind.inc"
++
++ _gfortran_selected_real_kind2008 = 0
++ p2 = 0
++ r2 = 0
++ radix2 = 0
++ found_p = .false.
++ found_r = .false.
++ found_radix = .false.
++
++ if (present (p)) p2 = p
++ if (present (r)) r2 = r
++ if (present (rdx)) radix2 = rdx
++
++ ! Assumes each type has a greater precision and range than previous one.
++
++ do i = 1, c
++ if (p2 <= real_infos (i) % precision) found_p = .true.
++ if (r2 <= real_infos (i) % range) found_r = .true.
++ if (radix2 <= real_infos (i) % radix) found_radix = .true.
++
++ if (p2 <= real_infos (i) % precision &
++ .and. r2 <= real_infos (i) % range &
++ .and. radix2 <= real_infos (i) % radix) then
++ _gfortran_selected_real_kind2008 = real_infos (i) % kind
++ return
++ end if
++ end do
++
++ if (found_radix .and. found_r .and. .not. found_p) then
++ _gfortran_selected_real_kind2008 = -1
++ elseif (found_radix .and. found_p .and. .not. found_r) then
++ _gfortran_selected_real_kind2008 = -2
++ elseif (found_radix .and. .not. found_p .and. .not. found_r) then
++ _gfortran_selected_real_kind2008 = -3
++ elseif (found_radix) then
++ _gfortran_selected_real_kind2008 = -4
++ else
++ _gfortran_selected_real_kind2008 = -5
++ end if
++end function _gfortran_selected_real_kind2008
+--- libgfortran/intrinsics/nonshared-shift.c.jj 2014-05-09 15:14:49.884967641 +0200
++++ libgfortran/intrinsics/nonshared-shift.c 2014-05-09 15:14:49.884967641 +0200
+@@ -0,0 +1,118 @@
++/* Generic implementation of the CSHIFT intrinsic
++ Copyright 2003-2014 Free Software Foundation, Inc.
++ Contributed by Feng Wang
++
++This file is part of the GNU Fortran runtime library (libgfortran).
++
++Libgfortran 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 of the License, or (at your option) any later version.
++
++Libgfortran 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.
++
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
++
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++#define LIBGFORTRAN_NONSHARED
++#include "libgfortran.h"
++
++#ifdef HAVE_GFC_INTEGER_16
++extern void cshift0_8_char4 (gfc_array_char *, GFC_INTEGER_4,
++ const gfc_array_char *,
++ const GFC_INTEGER_8 *,
++ const GFC_INTEGER_8 *, GFC_INTEGER_4);
++export_proto(cshift0_8_char4);
++
++extern void cshift0_16_char4 (gfc_array_char *, GFC_INTEGER_4,
++ const gfc_array_char *,
++ const GFC_INTEGER_16 *,
++ const GFC_INTEGER_16 *, GFC_INTEGER_4);
++export_proto(cshift0_16_char4);
++
++void
++cshift0_16_char4 (gfc_array_char *ret,
++ GFC_INTEGER_4 ret_length,
++ const gfc_array_char *array,
++ const GFC_INTEGER_16 *pshift,
++ const GFC_INTEGER_16 *pdim,
++ GFC_INTEGER_4 array_length)
++{
++ GFC_INTEGER_8 shift = *pshift;
++ GFC_INTEGER_8 dim = pdim ? *pdim : 1;
++
++ cshift0_8_char4 (ret, ret_length, array, &shift, pdim ? &dim : NULL,
++ array_length);
++}
++
++extern void eoshift0_8_char4 (gfc_array_char *, GFC_INTEGER_4,
++ const gfc_array_char *,
++ const GFC_INTEGER_8 *,
++ const char *, const GFC_INTEGER_8 *,
++ GFC_INTEGER_4, GFC_INTEGER_4);
++export_proto(eoshift0_8_char4);
++
++extern void eoshift0_16_char4 (gfc_array_char *, GFC_INTEGER_4,
++ const gfc_array_char *,
++ const GFC_INTEGER_16 *,
++ const char *, const GFC_INTEGER_16 *,
++ GFC_INTEGER_4, GFC_INTEGER_4);
++export_proto(eoshift0_16_char4);
++
++void
++eoshift0_16_char4 (gfc_array_char *ret,
++ GFC_INTEGER_4 ret_length,
++ const gfc_array_char *array,
++ const GFC_INTEGER_16 *pshift,
++ const char *pbound,
++ const GFC_INTEGER_16 *pdim,
++ GFC_INTEGER_4 array_length,
++ GFC_INTEGER_4 bound_length)
++{
++ GFC_INTEGER_8 shift = *pshift;
++ GFC_INTEGER_8 dim = pdim ? *pdim : 1;
++
++ eoshift0_8_char4 (ret, ret_length, array, &shift, pbound,
++ pdim ? &dim : NULL, array_length, bound_length);
++}
++
++extern void eoshift2_8_char4 (gfc_array_char *, GFC_INTEGER_4,
++ const gfc_array_char *,
++ const GFC_INTEGER_8 *,
++ const gfc_array_char *, const GFC_INTEGER_8 *,
++ GFC_INTEGER_4, GFC_INTEGER_4);
++export_proto(eoshift2_8_char4);
++
++extern void eoshift2_16_char4 (gfc_array_char *, GFC_INTEGER_4,
++ const gfc_array_char *,
++ const GFC_INTEGER_16 *,
++ const gfc_array_char *, const GFC_INTEGER_16 *,
++ GFC_INTEGER_4, GFC_INTEGER_4);
++export_proto(eoshift2_16_char4);
++
++void
++eoshift2_16_char4 (gfc_array_char *ret,
++ GFC_INTEGER_4 ret_length,
++ const gfc_array_char *array,
++ const GFC_INTEGER_16 *pshift,
++ const gfc_array_char *pbound,
++ const GFC_INTEGER_16 *pdim,
++ GFC_INTEGER_4 array_length,
++ GFC_INTEGER_4 bound_length)
++{
++ GFC_INTEGER_8 shift = *pshift;
++ GFC_INTEGER_8 dim = pdim ? *pdim : 1;
++
++ eoshift2_8_char4 (ret, ret_length, array, &shift, pbound,
++ pdim ? &dim : NULL, array_length, bound_length);
++}
++#endif
+--- libgfortran/intrinsics/nonshared-erfc_scaled.c.jj 2014-05-09 15:14:49.884967641 +0200
++++ libgfortran/intrinsics/nonshared-erfc_scaled.c 2014-05-09 15:21:41.500906474 +0200
+@@ -0,0 +1,109 @@
++/* Implementation of the ERFC_SCALED intrinsic.
++ Copyright (C) 2008-2014 Free Software Foundation, Inc.
++
++This file is part of the GNU Fortran runtime library (libgfortran).
++
++Libgfortran 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 of the License, or (at your option) any later version.
++
++Libgfortran 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.
++
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
++
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++#define LIBGFORTRAN_NONSHARED
++#include "libgfortran.h"
++
++/* This implementation of ERFC_SCALED is based on the netlib algorithm
++ available at http://www.netlib.org/specfun/erf */
++
++#ifdef HAVE_GFC_REAL_16
++
++/* For quadruple-precision, netlib's implementation is
++ not accurate enough. We provide another one. */
++
++#ifdef GFC_REAL_16_IS_FLOAT128
++
++# define _THRESH -106.566990228185312813205074546585730Q
++# define _M_2_SQRTPI M_2_SQRTPIq
++# define _INF __builtin_infq()
++# define _ERFC(x) erfcq(x)
++# define _EXP(x) expq(x)
++
++#else
++
++# define _THRESH -106.566990228185312813205074546585730L
++# ifndef M_2_SQRTPIl
++# define M_2_SQRTPIl 1.128379167095512573896158903121545172L
++# endif
++# define _M_2_SQRTPI M_2_SQRTPIl
++# define _INF __builtin_infl()
++# ifdef HAVE_ERFCL
++# define _ERFC(x) erfcl(x)
++# endif
++# ifdef HAVE_EXPL
++# define _EXP(x) expl(x)
++# endif
++
++#endif
++
++#if defined(_ERFC) && defined(_EXP)
++
++extern GFC_REAL_16 erfc_scaled_r16 (GFC_REAL_16);
++export_proto(erfc_scaled_r16);
++
++GFC_REAL_16
++erfc_scaled_r16 (GFC_REAL_16 x)
++{
++ if (x < _THRESH)
++ {
++ return _INF;
++ }
++ if (x < 12)
++ {
++ /* Compute directly as ERFC_SCALED(x) = ERFC(x) * EXP(X**2).
++ This is not perfect, but much better than netlib. */
++ return _ERFC(x) * _EXP(x * x);
++ }
++ else
++ {
++ /* Calculate ERFC_SCALED(x) using a power series in 1/x:
++ ERFC_SCALED(x) = 1 / (x * sqrt(pi))
++ * (1 + Sum_n (-1)**n * (1 * 3 * 5 * ... * (2n-1))
++ / (2 * x**2)**n)
++ */
++ GFC_REAL_16 sum = 0, oldsum;
++ GFC_REAL_16 inv2x2 = 1 / (2 * x * x);
++ GFC_REAL_16 fac = 1;
++ int n = 1;
++
++ while (n < 200)
++ {
++ fac *= - (2*n - 1) * inv2x2;
++ oldsum = sum;
++ sum += fac;
++
++ if (sum == oldsum)
++ break;
++
++ n++;
++ }
++
++ return (1 + sum) / x * (_M_2_SQRTPI / 2);
++ }
++}
++
++#endif
++
++#endif
+--- libgfortran/intrinsics/nonshared-cpu_time.c.jj 2014-05-09 15:14:49.884967641 +0200
++++ libgfortran/intrinsics/nonshared-cpu_time.c 2014-05-09 15:14:49.884967641 +0200
+@@ -0,0 +1,43 @@
++/* Implementation of the CPU_TIME intrinsic.
++ Copyright (C) 2003-2014 Free Software Foundation, Inc.
++
++This file is part of the GNU Fortran runtime library (libgfortran).
++
++Libgfortran 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 of the License, or (at your option) any later version.
++
++Libgfortran 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.
++
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
++
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++#define LIBGFORTRAN_NONSHARED
++#include "libgfortran.h"
++#include "time_1.h"
++
++
++#if defined HAVE_GFC_REAL_10 && defined HAVE_GFC_REAL_16
++extern void cpu_time_10 (GFC_REAL_10 *);
++export_proto(cpu_time_10);
++
++extern void cpu_time_16 (GFC_REAL_16 *);
++export_proto(cpu_time_16);
++
++void cpu_time_16 (GFC_REAL_16 *time)
++{
++ GFC_REAL_10 t;
++ cpu_time_10 (&t);
++ *time = t;
++}
++#endif
+--- libgfortran/intrinsics/nonshared-iso_c_generated_procs.c.jj 2014-05-09 15:14:49.884967641 +0200
++++ libgfortran/intrinsics/nonshared-iso_c_generated_procs.c 2014-05-09 15:14:49.884967641 +0200
+@@ -0,0 +1,77 @@
++/* Implementation of the ISO_C_BINDING library helper generated functions.
++ Copyright (C) 2007-2014 Free Software Foundation, Inc.
++ Contributed by Christopher Rickett.
++
++This file is part of the GNU Fortran 95 runtime library (libgfortran).
++
++Libgfortran 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 of the License, or (at your option) any later version.
++
++Libgfortran 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.
++
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
++
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++
++#define LIBGFORTRAN_NONSHARED
++#include "libgfortran.h"
++#include "iso_c_binding.h"
++
++
++#ifdef HAVE_GFC_REAL_16
++void ISO_C_BINDING_PREFIX (c_f_pointer_r16) (void *, gfc_array_void *,
++ const array_t *);
++#endif
++
++#ifdef HAVE_GFC_COMPLEX_16
++void ISO_C_BINDING_PREFIX (c_f_pointer_c16) (void *, gfc_array_void *,
++ const array_t *);
++#endif
++
++#ifdef HAVE_GFC_REAL_16
++/* Set the given Fortran pointer, f_ptr_out, to point to the given C
++ address, c_ptr_in. The Fortran pointer is of type real and
++ kind=16. The function c_f_pointer is used to set up the pointer
++ descriptor. */
++
++void
++ISO_C_BINDING_PREFIX (c_f_pointer_r16) (void *c_ptr_in,
++ gfc_array_void *f_ptr_out,
++ const array_t *shape)
++{
++ /* Here we have an real(kind=16). */
++ ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
++ (int) BT_REAL,
++ (int) sizeof (GFC_REAL_16));
++}
++#endif
++
++
++#ifdef HAVE_GFC_COMPLEX_16
++/* Set the given Fortran pointer, f_ptr_out, to point to the given C
++ address, c_ptr_in. The Fortran pointer is of type complex and
++ kind=16. The function c_f_pointer is used to set up the pointer
++ descriptor. */
++
++void
++ISO_C_BINDING_PREFIX (c_f_pointer_c16) (void *c_ptr_in,
++ gfc_array_void *f_ptr_out,
++ const array_t *shape)
++{
++ /* Here we have an complex(kind=16). */
++ ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
++ (int) BT_COMPLEX,
++ (int) sizeof (GFC_COMPLEX_16));
++}
++#endif
+--- libgfortran/intrinsics/nonshared-execute_command_line.c.jj 2014-05-09 15:14:49.884967641 +0200
++++ libgfortran/intrinsics/nonshared-execute_command_line.c 2014-05-09 15:14:49.884967641 +0200
+@@ -0,0 +1,188 @@
++/* Implementation of the EXECUTE_COMMAND_LINE intrinsic.
++ Copyright (C) 2009-2014 Free Software Foundation, Inc.
++ Contributed by François-Xavier Coudert.
++
++This file is part of the GNU Fortran runtime library (libgfortran).
++
++Libgfortran 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.
++
++Libgfortran 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.
++
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
++
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++#define LIBGFORTRAN_NONSHARED
++#include "libgfortran.h"
++#include
++#include
++
++#ifdef HAVE_STDLIB_H
++#include
++#endif
++#ifdef HAVE_UNISTD_H
++#include
++#endif
++#ifdef HAVE_SYS_WAIT_H
++#include
++#endif
++
++extern void flush_i4 (GFC_INTEGER_4 *);
++export_proto(flush_i4);
++
++enum { EXEC_NOERROR = 0, EXEC_SYSTEMFAILED };
++static const char *cmdmsg_values[] =
++ { "", "Execution of child process impossible" };
++
++
++
++static void
++set_cmdstat (int *cmdstat, int value)
++{
++ if (cmdstat)
++ *cmdstat = value;
++ else if (value != 0)
++ runtime_error ("Could not execute command line");
++}
++
++
++static void
++execute_command_line (const char *command, bool wait, int *exitstat,
++ int *cmdstat, char *cmdmsg,
++ gfc_charlen_type command_len,
++ gfc_charlen_type cmdmsg_len)
++{
++ /* Transform the Fortran string to a C string. */
++ char cmd[command_len + 1];
++ memcpy (cmd, command, command_len);
++ cmd[command_len] = '\0';
++
++ /* Flush all I/O units before executing the command. */
++ flush_i4(NULL);
++
++#if defined(HAVE_FORK)
++ if (!wait)
++ {
++ /* Asynchronous execution. */
++ pid_t pid;
++
++ set_cmdstat (cmdstat, 0);
++
++ if ((pid = fork()) < 0)
++ set_cmdstat (cmdstat, EXEC_SYSTEMFAILED);
++ else if (pid == 0)
++ {
++ /* Child process. */
++ int res = system (cmd);
++ _exit (WIFEXITED(res) ? WEXITSTATUS(res) : res);
++ }
++ }
++ else
++#endif
++ {
++ /* Synchronous execution. */
++ int res = system (cmd);
++
++ if (!wait)
++ set_cmdstat (cmdstat, -2);
++ else if (res == -1)
++ set_cmdstat (cmdstat, EXEC_SYSTEMFAILED);
++ else
++ {
++ set_cmdstat (cmdstat, 0);
++#if defined(WEXITSTATUS) && defined(WIFEXITED)
++ *exitstat = WIFEXITED(res) ? WEXITSTATUS(res) : res;
++#else
++ *exitstat = res;
++#endif
++ }
++ }
++
++ /* Now copy back to the Fortran string if needed. */
++ if (cmdstat && *cmdstat > 0)
++ {
++ if (cmdmsg)
++ {
++ size_t srclen = strlen (cmdmsg_values[*cmdstat]);
++ if (srclen >= (size_t) cmdmsg_len)
++ memcpy (cmdmsg, cmdmsg_values[*cmdstat], cmdmsg_len);
++ else
++ {
++ memcpy (cmdmsg, cmdmsg_values[*cmdstat], srclen);
++ memset (cmdmsg + srclen, ' ', cmdmsg_len - srclen);
++ }
++ }
++ else
++ runtime_error ("Failure in EXECUTE_COMMAND_LINE: %s",
++ cmdmsg_values[*cmdstat]);
++ }
++}
++
++
++extern void
++execute_command_line_i4 (const char *command, GFC_LOGICAL_4 *wait,
++ GFC_INTEGER_4 *exitstat, GFC_INTEGER_4 *cmdstat,
++ char *cmdmsg, gfc_charlen_type command_len,
++ gfc_charlen_type cmdmsg_len);
++export_proto(execute_command_line_i4);
++
++void
++execute_command_line_i4 (const char *command, GFC_LOGICAL_4 *wait,
++ GFC_INTEGER_4 *exitstat, GFC_INTEGER_4 *cmdstat,
++ char *cmdmsg, gfc_charlen_type command_len,
++ gfc_charlen_type cmdmsg_len)
++{
++ bool w = wait ? *wait : true;
++ int estat, estat_initial, cstat;
++
++ if (exitstat)
++ estat_initial = estat = *exitstat;
++
++ execute_command_line (command, w, &estat, cmdstat ? &cstat : NULL,
++ cmdmsg, command_len, cmdmsg_len);
++
++ if (exitstat && estat != estat_initial)
++ *exitstat = estat;
++ if (cmdstat)
++ *cmdstat = cstat;
++}
++
++
++extern void
++execute_command_line_i8 (const char *command, GFC_LOGICAL_8 *wait,
++ GFC_INTEGER_8 *exitstat, GFC_INTEGER_8 *cmdstat,
++ char *cmdmsg, gfc_charlen_type command_len,
++ gfc_charlen_type cmdmsg_len);
++export_proto(execute_command_line_i8);
++
++void
++execute_command_line_i8 (const char *command, GFC_LOGICAL_8 *wait,
++ GFC_INTEGER_8 *exitstat, GFC_INTEGER_8 *cmdstat,
++ char *cmdmsg, gfc_charlen_type command_len,
++ gfc_charlen_type cmdmsg_len)
++{
++ bool w = wait ? *wait : true;
++ int estat, estat_initial, cstat;
++
++ if (exitstat)
++ estat_initial = estat = *exitstat;
++
++ execute_command_line (command, w, &estat, cmdstat ? &cstat : NULL,
++ cmdmsg, command_len, cmdmsg_len);
++
++ if (exitstat && estat != estat_initial)
++ *exitstat = estat;
++ if (cmdstat)
++ *cmdstat = cstat;
++}
diff --git a/SOURCES/gcc49-libgo-p224.patch b/SOURCES/gcc49-libgo-p224.patch
new file mode 100644
index 0000000..89e06e1
--- /dev/null
+++ b/SOURCES/gcc49-libgo-p224.patch
@@ -0,0 +1,1093 @@
+--- libgo/Makefile.am.jj 2014-01-08 13:53:06.000000000 +0100
++++ libgo/Makefile.am 2014-03-05 15:20:09.938466093 +0100
+@@ -1133,7 +1133,6 @@ go_crypto_ecdsa_files = \
+ go/crypto/ecdsa/ecdsa.go
+ go_crypto_elliptic_files = \
+ go/crypto/elliptic/elliptic.go \
+- go/crypto/elliptic/p224.go \
+ go/crypto/elliptic/p256.go
+ go_crypto_hmac_files = \
+ go/crypto/hmac/hmac.go
+--- libgo/Makefile.in.jj 2014-01-08 13:53:06.000000000 +0100
++++ libgo/Makefile.in 2014-03-05 15:20:20.372465471 +0100
+@@ -1291,7 +1291,6 @@ go_crypto_ecdsa_files = \
+
+ go_crypto_elliptic_files = \
+ go/crypto/elliptic/elliptic.go \
+- go/crypto/elliptic/p224.go \
+ go/crypto/elliptic/p256.go
+
+ go_crypto_hmac_files = \
+--- libgo/go/crypto/elliptic/elliptic.go.jj 2013-11-07 11:59:09.000000000 +0100
++++ libgo/go/crypto/elliptic/elliptic.go 2014-03-05 15:21:04.186462859 +0100
+@@ -326,7 +326,6 @@ var p384 *CurveParams
+ var p521 *CurveParams
+
+ func initAll() {
+- initP224()
+ initP256()
+ initP384()
+ initP521()
+--- libgo/go/crypto/elliptic/elliptic_test.go.jj 2013-11-07 11:59:09.000000000 +0100
++++ libgo/go/crypto/elliptic/elliptic_test.go 2014-03-05 15:46:03.739373453 +0100
+@@ -5,26 +5,16 @@
+ package elliptic
+
+ import (
+- "crypto/rand"
+- "encoding/hex"
+- "fmt"
+ "math/big"
+ "testing"
+ )
+
+-func TestOnCurve(t *testing.T) {
+- p224 := P224()
+- if !p224.IsOnCurve(p224.Params().Gx, p224.Params().Gy) {
+- t.Errorf("FAIL")
+- }
+-}
+-
+ type baseMultTest struct {
+ k string
+ x, y string
+ }
+
+-var p224BaseMultTests = []baseMultTest{
++var p256BaseMultTests = []baseMultTest{
+ {
+ "1",
+ "b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21",
+@@ -287,47 +277,12 @@ var p224BaseMultTests = []baseMultTest{
+ },
+ }
+
+-func TestBaseMult(t *testing.T) {
+- p224 := P224()
+- for i, e := range p224BaseMultTests {
+- k, ok := new(big.Int).SetString(e.k, 10)
+- if !ok {
+- t.Errorf("%d: bad value for k: %s", i, e.k)
+- }
+- x, y := p224.ScalarBaseMult(k.Bytes())
+- if fmt.Sprintf("%x", x) != e.x || fmt.Sprintf("%x", y) != e.y {
+- t.Errorf("%d: bad output for k=%s: got (%x, %x), want (%s, %s)", i, e.k, x, y, e.x, e.y)
+- }
+- if testing.Short() && i > 5 {
+- break
+- }
+- }
+-}
+-
+-func TestGenericBaseMult(t *testing.T) {
+- // We use the P224 CurveParams directly in order to test the generic implementation.
+- p224 := P224().Params()
+- for i, e := range p224BaseMultTests {
+- k, ok := new(big.Int).SetString(e.k, 10)
+- if !ok {
+- t.Errorf("%d: bad value for k: %s", i, e.k)
+- }
+- x, y := p224.ScalarBaseMult(k.Bytes())
+- if fmt.Sprintf("%x", x) != e.x || fmt.Sprintf("%x", y) != e.y {
+- t.Errorf("%d: bad output for k=%s: got (%x, %x), want (%s, %s)", i, e.k, x, y, e.x, e.y)
+- }
+- if testing.Short() && i > 5 {
+- break
+- }
+- }
+-}
+-
+ func TestP256BaseMult(t *testing.T) {
+ p256 := P256()
+ p256Generic := p256.Params()
+
+- scalars := make([]*big.Int, 0, len(p224BaseMultTests)+1)
+- for _, e := range p224BaseMultTests {
++ scalars := make([]*big.Int, 0, len(p256BaseMultTests)+1)
++ for _, e := range p256BaseMultTests {
+ k, _ := new(big.Int).SetString(e.k, 10)
+ scalars = append(scalars, k)
+ }
+@@ -352,7 +307,7 @@ func TestP256Mult(t *testing.T) {
+ p256 := P256()
+ p256Generic := p256.Params()
+
+- for i, e := range p224BaseMultTests {
++ for i, e := range p256BaseMultTests {
+ x, _ := new(big.Int).SetString(e.x, 16)
+ y, _ := new(big.Int).SetString(e.y, 16)
+ k, _ := new(big.Int).SetString(e.k, 10)
+@@ -373,7 +328,6 @@ func TestInfinity(t *testing.T) {
+ name string
+ curve Curve
+ }{
+- {"p224", P224()},
+ {"p256", P256()},
+ }
+
+@@ -406,53 +360,13 @@ func TestInfinity(t *testing.T) {
+ }
+ }
+
+-func BenchmarkBaseMult(b *testing.B) {
+- b.ResetTimer()
+- p224 := P224()
+- e := p224BaseMultTests[25]
+- k, _ := new(big.Int).SetString(e.k, 10)
+- b.StartTimer()
+- for i := 0; i < b.N; i++ {
+- p224.ScalarBaseMult(k.Bytes())
+- }
+-}
+-
+ func BenchmarkBaseMultP256(b *testing.B) {
+ b.ResetTimer()
+ p256 := P256()
+- e := p224BaseMultTests[25]
++ e := p256BaseMultTests[25]
+ k, _ := new(big.Int).SetString(e.k, 10)
+ b.StartTimer()
+ for i := 0; i < b.N; i++ {
+ p256.ScalarBaseMult(k.Bytes())
+ }
+ }
+-
+-func TestMarshal(t *testing.T) {
+- p224 := P224()
+- _, x, y, err := GenerateKey(p224, rand.Reader)
+- if err != nil {
+- t.Error(err)
+- return
+- }
+- serialized := Marshal(p224, x, y)
+- xx, yy := Unmarshal(p224, serialized)
+- if xx == nil {
+- t.Error("failed to unmarshal")
+- return
+- }
+- if xx.Cmp(x) != 0 || yy.Cmp(y) != 0 {
+- t.Error("unmarshal returned different values")
+- return
+- }
+-}
+-
+-func TestP224Overflow(t *testing.T) {
+- // This tests for a specific bug in the P224 implementation.
+- p224 := P224()
+- pointData, _ := hex.DecodeString("049B535B45FB0A2072398A6831834624C7E32CCFD5A4B933BCEAF77F1DD945E08BBE5178F5EDF5E733388F196D2A631D2E075BB16CBFEEA15B")
+- x, y := Unmarshal(p224, pointData)
+- if !p224.IsOnCurve(x, y) {
+- t.Error("P224 failed to validate a correct point")
+- }
+-}
+--- libgo/go/crypto/ecdsa/ecdsa_test.go.jj 2012-11-15 18:26:56.000000000 +0100
++++ libgo/go/crypto/ecdsa/ecdsa_test.go 2014-03-05 15:26:38.461442929 +0100
+@@ -33,7 +33,6 @@ func testKeyGeneration(t *testing.T, c e
+ }
+
+ func TestKeyGeneration(t *testing.T) {
+- testKeyGeneration(t, elliptic.P224(), "p224")
+ if testing.Short() {
+ return
+ }
+@@ -63,7 +62,6 @@ func testSignAndVerify(t *testing.T, c e
+ }
+
+ func TestSignAndVerify(t *testing.T) {
+- testSignAndVerify(t, elliptic.P224(), "p224")
+ if testing.Short() {
+ return
+ }
+@@ -129,8 +127,6 @@ func TestVectors(t *testing.T) {
+ parts := strings.SplitN(line, ",", 2)
+
+ switch parts[0] {
+- case "P-224":
+- pub.Curve = elliptic.P224()
+ case "P-256":
+ pub.Curve = elliptic.P256()
+ case "P-384":
+--- libgo/go/crypto/x509/x509.go.jj 2013-11-07 11:59:09.000000000 +0100
++++ libgo/go/crypto/x509/x509.go 2014-03-05 15:27:37.022439437 +0100
+@@ -305,9 +305,6 @@ func getPublicKeyAlgorithmFromOID(oid as
+
+ // RFC 5480, 2.1.1.1. Named Curve
+ //
+-// secp224r1 OBJECT IDENTIFIER ::= {
+-// iso(1) identified-organization(3) certicom(132) curve(0) 33 }
+-//
+ // secp256r1 OBJECT IDENTIFIER ::= {
+ // iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3)
+ // prime(1) 7 }
+@@ -320,7 +317,6 @@ func getPublicKeyAlgorithmFromOID(oid as
+ //
+ // NB: secp256r1 is equivalent to prime256v1
+ var (
+- oidNamedCurveP224 = asn1.ObjectIdentifier{1, 3, 132, 0, 33}
+ oidNamedCurveP256 = asn1.ObjectIdentifier{1, 2, 840, 10045, 3, 1, 7}
+ oidNamedCurveP384 = asn1.ObjectIdentifier{1, 3, 132, 0, 34}
+ oidNamedCurveP521 = asn1.ObjectIdentifier{1, 3, 132, 0, 35}
+@@ -328,8 +324,6 @@ var (
+
+ func namedCurveFromOID(oid asn1.ObjectIdentifier) elliptic.Curve {
+ switch {
+- case oid.Equal(oidNamedCurveP224):
+- return elliptic.P224()
+ case oid.Equal(oidNamedCurveP256):
+ return elliptic.P256()
+ case oid.Equal(oidNamedCurveP384):
+@@ -342,8 +336,6 @@ func namedCurveFromOID(oid asn1.ObjectId
+
+ func oidFromNamedCurve(curve elliptic.Curve) (asn1.ObjectIdentifier, bool) {
+ switch curve {
+- case elliptic.P224():
+- return oidNamedCurveP224, true
+ case elliptic.P256():
+ return oidNamedCurveP256, true
+ case elliptic.P384():
+@@ -1373,7 +1365,7 @@ func CreateCertificate(rand io.Reader, t
+ hashFunc = crypto.SHA1
+ case *ecdsa.PrivateKey:
+ switch priv.Curve {
+- case elliptic.P224(), elliptic.P256():
++ case elliptic.P256():
+ hashFunc = crypto.SHA256
+ signatureAlgorithm.Algorithm = oidSignatureECDSAWithSHA256
+ case elliptic.P384():
+--- libgo/go/crypto/elliptic/p224.go.jj 2012-11-15 18:26:57.000000000 +0100
++++ libgo/go/crypto/elliptic/p224.go 2014-03-05 15:30:01.189430842 +0100
+@@ -1,765 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package elliptic
+-
+-// This is a constant-time, 32-bit implementation of P224. See FIPS 186-3,
+-// section D.2.2.
+-//
+-// See http://www.imperialviolet.org/2010/12/04/ecc.html ([1]) for background.
+-
+-import (
+- "math/big"
+-)
+-
+-var p224 p224Curve
+-
+-type p224Curve struct {
+- *CurveParams
+- gx, gy, b p224FieldElement
+-}
+-
+-func initP224() {
+- // See FIPS 186-3, section D.2.2
+- p224.CurveParams = new(CurveParams)
+- p224.P, _ = new(big.Int).SetString("26959946667150639794667015087019630673557916260026308143510066298881", 10)
+- p224.N, _ = new(big.Int).SetString("26959946667150639794667015087019625940457807714424391721682722368061", 10)
+- p224.B, _ = new(big.Int).SetString("b4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4", 16)
+- p224.Gx, _ = new(big.Int).SetString("b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21", 16)
+- p224.Gy, _ = new(big.Int).SetString("bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34", 16)
+- p224.BitSize = 224
+-
+- p224FromBig(&p224.gx, p224.Gx)
+- p224FromBig(&p224.gy, p224.Gy)
+- p224FromBig(&p224.b, p224.B)
+-}
+-
+-// P224 returns a Curve which implements P-224 (see FIPS 186-3, section D.2.2)
+-func P224() Curve {
+- initonce.Do(initAll)
+- return p224
+-}
+-
+-func (curve p224Curve) Params() *CurveParams {
+- return curve.CurveParams
+-}
+-
+-func (curve p224Curve) IsOnCurve(bigX, bigY *big.Int) bool {
+- var x, y p224FieldElement
+- p224FromBig(&x, bigX)
+- p224FromBig(&y, bigY)
+-
+- // y² = x³ - 3x + b
+- var tmp p224LargeFieldElement
+- var x3 p224FieldElement
+- p224Square(&x3, &x, &tmp)
+- p224Mul(&x3, &x3, &x, &tmp)
+-
+- for i := 0; i < 8; i++ {
+- x[i] *= 3
+- }
+- p224Sub(&x3, &x3, &x)
+- p224Reduce(&x3)
+- p224Add(&x3, &x3, &curve.b)
+- p224Contract(&x3, &x3)
+-
+- p224Square(&y, &y, &tmp)
+- p224Contract(&y, &y)
+-
+- for i := 0; i < 8; i++ {
+- if y[i] != x3[i] {
+- return false
+- }
+- }
+- return true
+-}
+-
+-func (p224Curve) Add(bigX1, bigY1, bigX2, bigY2 *big.Int) (x, y *big.Int) {
+- var x1, y1, z1, x2, y2, z2, x3, y3, z3 p224FieldElement
+-
+- p224FromBig(&x1, bigX1)
+- p224FromBig(&y1, bigY1)
+- if bigX1.Sign() != 0 || bigY1.Sign() != 0 {
+- z1[0] = 1
+- }
+- p224FromBig(&x2, bigX2)
+- p224FromBig(&y2, bigY2)
+- if bigX2.Sign() != 0 || bigY2.Sign() != 0 {
+- z2[0] = 1
+- }
+-
+- p224AddJacobian(&x3, &y3, &z3, &x1, &y1, &z1, &x2, &y2, &z2)
+- return p224ToAffine(&x3, &y3, &z3)
+-}
+-
+-func (p224Curve) Double(bigX1, bigY1 *big.Int) (x, y *big.Int) {
+- var x1, y1, z1, x2, y2, z2 p224FieldElement
+-
+- p224FromBig(&x1, bigX1)
+- p224FromBig(&y1, bigY1)
+- z1[0] = 1
+-
+- p224DoubleJacobian(&x2, &y2, &z2, &x1, &y1, &z1)
+- return p224ToAffine(&x2, &y2, &z2)
+-}
+-
+-func (p224Curve) ScalarMult(bigX1, bigY1 *big.Int, scalar []byte) (x, y *big.Int) {
+- var x1, y1, z1, x2, y2, z2 p224FieldElement
+-
+- p224FromBig(&x1, bigX1)
+- p224FromBig(&y1, bigY1)
+- z1[0] = 1
+-
+- p224ScalarMult(&x2, &y2, &z2, &x1, &y1, &z1, scalar)
+- return p224ToAffine(&x2, &y2, &z2)
+-}
+-
+-func (curve p224Curve) ScalarBaseMult(scalar []byte) (x, y *big.Int) {
+- var z1, x2, y2, z2 p224FieldElement
+-
+- z1[0] = 1
+- p224ScalarMult(&x2, &y2, &z2, &curve.gx, &curve.gy, &z1, scalar)
+- return p224ToAffine(&x2, &y2, &z2)
+-}
+-
+-// Field element functions.
+-//
+-// The field that we're dealing with is ℤ/pℤ where p = 2**224 - 2**96 + 1.
+-//
+-// Field elements are represented by a FieldElement, which is a typedef to an
+-// array of 8 uint32's. The value of a FieldElement, a, is:
+-// a[0] + 2**28·a[1] + 2**56·a[1] + ... + 2**196·a[7]
+-//
+-// Using 28-bit limbs means that there's only 4 bits of headroom, which is less
+-// than we would really like. But it has the useful feature that we hit 2**224
+-// exactly, making the reflections during a reduce much nicer.
+-type p224FieldElement [8]uint32
+-
+-// p224P is the order of the field, represented as a p224FieldElement.
+-var p224P = [8]uint32{1, 0, 0, 0xffff000, 0xfffffff, 0xfffffff, 0xfffffff, 0xfffffff}
+-
+-// p224IsZero returns 1 if a == 0 mod p and 0 otherwise.
+-//
+-// a[i] < 2**29
+-func p224IsZero(a *p224FieldElement) uint32 {
+- // Since a p224FieldElement contains 224 bits there are two possible
+- // representations of 0: 0 and p.
+- var minimal p224FieldElement
+- p224Contract(&minimal, a)
+-
+- var isZero, isP uint32
+- for i, v := range minimal {
+- isZero |= v
+- isP |= v - p224P[i]
+- }
+-
+- // If either isZero or isP is 0, then we should return 1.
+- isZero |= isZero >> 16
+- isZero |= isZero >> 8
+- isZero |= isZero >> 4
+- isZero |= isZero >> 2
+- isZero |= isZero >> 1
+-
+- isP |= isP >> 16
+- isP |= isP >> 8
+- isP |= isP >> 4
+- isP |= isP >> 2
+- isP |= isP >> 1
+-
+- // For isZero and isP, the LSB is 0 iff all the bits are zero.
+- result := isZero & isP
+- result = (^result) & 1
+-
+- return result
+-}
+-
+-// p224Add computes *out = a+b
+-//
+-// a[i] + b[i] < 2**32
+-func p224Add(out, a, b *p224FieldElement) {
+- for i := 0; i < 8; i++ {
+- out[i] = a[i] + b[i]
+- }
+-}
+-
+-const two31p3 = 1<<31 + 1<<3
+-const two31m3 = 1<<31 - 1<<3
+-const two31m15m3 = 1<<31 - 1<<15 - 1<<3
+-
+-// p224ZeroModP31 is 0 mod p where bit 31 is set in all limbs so that we can
+-// subtract smaller amounts without underflow. See the section "Subtraction" in
+-// [1] for reasoning.
+-var p224ZeroModP31 = []uint32{two31p3, two31m3, two31m3, two31m15m3, two31m3, two31m3, two31m3, two31m3}
+-
+-// p224Sub computes *out = a-b
+-//
+-// a[i], b[i] < 2**30
+-// out[i] < 2**32
+-func p224Sub(out, a, b *p224FieldElement) {
+- for i := 0; i < 8; i++ {
+- out[i] = a[i] + p224ZeroModP31[i] - b[i]
+- }
+-}
+-
+-// LargeFieldElement also represents an element of the field. The limbs are
+-// still spaced 28-bits apart and in little-endian order. So the limbs are at
+-// 0, 28, 56, ..., 392 bits, each 64-bits wide.
+-type p224LargeFieldElement [15]uint64
+-
+-const two63p35 = 1<<63 + 1<<35
+-const two63m35 = 1<<63 - 1<<35
+-const two63m35m19 = 1<<63 - 1<<35 - 1<<19
+-
+-// p224ZeroModP63 is 0 mod p where bit 63 is set in all limbs. See the section
+-// "Subtraction" in [1] for why.
+-var p224ZeroModP63 = [8]uint64{two63p35, two63m35, two63m35, two63m35, two63m35m19, two63m35, two63m35, two63m35}
+-
+-const bottom12Bits = 0xfff
+-const bottom28Bits = 0xfffffff
+-
+-// p224Mul computes *out = a*b
+-//
+-// a[i] < 2**29, b[i] < 2**30 (or vice versa)
+-// out[i] < 2**29
+-func p224Mul(out, a, b *p224FieldElement, tmp *p224LargeFieldElement) {
+- for i := 0; i < 15; i++ {
+- tmp[i] = 0
+- }
+-
+- for i := 0; i < 8; i++ {
+- for j := 0; j < 8; j++ {
+- tmp[i+j] += uint64(a[i]) * uint64(b[j])
+- }
+- }
+-
+- p224ReduceLarge(out, tmp)
+-}
+-
+-// Square computes *out = a*a
+-//
+-// a[i] < 2**29
+-// out[i] < 2**29
+-func p224Square(out, a *p224FieldElement, tmp *p224LargeFieldElement) {
+- for i := 0; i < 15; i++ {
+- tmp[i] = 0
+- }
+-
+- for i := 0; i < 8; i++ {
+- for j := 0; j <= i; j++ {
+- r := uint64(a[i]) * uint64(a[j])
+- if i == j {
+- tmp[i+j] += r
+- } else {
+- tmp[i+j] += r << 1
+- }
+- }
+- }
+-
+- p224ReduceLarge(out, tmp)
+-}
+-
+-// ReduceLarge converts a p224LargeFieldElement to a p224FieldElement.
+-//
+-// in[i] < 2**62
+-func p224ReduceLarge(out *p224FieldElement, in *p224LargeFieldElement) {
+- for i := 0; i < 8; i++ {
+- in[i] += p224ZeroModP63[i]
+- }
+-
+- // Eliminate the coefficients at 2**224 and greater.
+- for i := 14; i >= 8; i-- {
+- in[i-8] -= in[i]
+- in[i-5] += (in[i] & 0xffff) << 12
+- in[i-4] += in[i] >> 16
+- }
+- in[8] = 0
+- // in[0..8] < 2**64
+-
+- // As the values become small enough, we start to store them in |out|
+- // and use 32-bit operations.
+- for i := 1; i < 8; i++ {
+- in[i+1] += in[i] >> 28
+- out[i] = uint32(in[i] & bottom28Bits)
+- }
+- in[0] -= in[8]
+- out[3] += uint32(in[8]&0xffff) << 12
+- out[4] += uint32(in[8] >> 16)
+- // in[0] < 2**64
+- // out[3] < 2**29
+- // out[4] < 2**29
+- // out[1,2,5..7] < 2**28
+-
+- out[0] = uint32(in[0] & bottom28Bits)
+- out[1] += uint32((in[0] >> 28) & bottom28Bits)
+- out[2] += uint32(in[0] >> 56)
+- // out[0] < 2**28
+- // out[1..4] < 2**29
+- // out[5..7] < 2**28
+-}
+-
+-// Reduce reduces the coefficients of a to smaller bounds.
+-//
+-// On entry: a[i] < 2**31 + 2**30
+-// On exit: a[i] < 2**29
+-func p224Reduce(a *p224FieldElement) {
+- for i := 0; i < 7; i++ {
+- a[i+1] += a[i] >> 28
+- a[i] &= bottom28Bits
+- }
+- top := a[7] >> 28
+- a[7] &= bottom28Bits
+-
+- // top < 2**4
+- mask := top
+- mask |= mask >> 2
+- mask |= mask >> 1
+- mask <<= 31
+- mask = uint32(int32(mask) >> 31)
+- // Mask is all ones if top != 0, all zero otherwise
+-
+- a[0] -= top
+- a[3] += top << 12
+-
+- // We may have just made a[0] negative but, if we did, then we must
+- // have added something to a[3], this it's > 2**12. Therefore we can
+- // carry down to a[0].
+- a[3] -= 1 & mask
+- a[2] += mask & (1<<28 - 1)
+- a[1] += mask & (1<<28 - 1)
+- a[0] += mask & (1 << 28)
+-}
+-
+-// p224Invert calculates *out = in**-1 by computing in**(2**224 - 2**96 - 1),
+-// i.e. Fermat's little theorem.
+-func p224Invert(out, in *p224FieldElement) {
+- var f1, f2, f3, f4 p224FieldElement
+- var c p224LargeFieldElement
+-
+- p224Square(&f1, in, &c) // 2
+- p224Mul(&f1, &f1, in, &c) // 2**2 - 1
+- p224Square(&f1, &f1, &c) // 2**3 - 2
+- p224Mul(&f1, &f1, in, &c) // 2**3 - 1
+- p224Square(&f2, &f1, &c) // 2**4 - 2
+- p224Square(&f2, &f2, &c) // 2**5 - 4
+- p224Square(&f2, &f2, &c) // 2**6 - 8
+- p224Mul(&f1, &f1, &f2, &c) // 2**6 - 1
+- p224Square(&f2, &f1, &c) // 2**7 - 2
+- for i := 0; i < 5; i++ { // 2**12 - 2**6
+- p224Square(&f2, &f2, &c)
+- }
+- p224Mul(&f2, &f2, &f1, &c) // 2**12 - 1
+- p224Square(&f3, &f2, &c) // 2**13 - 2
+- for i := 0; i < 11; i++ { // 2**24 - 2**12
+- p224Square(&f3, &f3, &c)
+- }
+- p224Mul(&f2, &f3, &f2, &c) // 2**24 - 1
+- p224Square(&f3, &f2, &c) // 2**25 - 2
+- for i := 0; i < 23; i++ { // 2**48 - 2**24
+- p224Square(&f3, &f3, &c)
+- }
+- p224Mul(&f3, &f3, &f2, &c) // 2**48 - 1
+- p224Square(&f4, &f3, &c) // 2**49 - 2
+- for i := 0; i < 47; i++ { // 2**96 - 2**48
+- p224Square(&f4, &f4, &c)
+- }
+- p224Mul(&f3, &f3, &f4, &c) // 2**96 - 1
+- p224Square(&f4, &f3, &c) // 2**97 - 2
+- for i := 0; i < 23; i++ { // 2**120 - 2**24
+- p224Square(&f4, &f4, &c)
+- }
+- p224Mul(&f2, &f4, &f2, &c) // 2**120 - 1
+- for i := 0; i < 6; i++ { // 2**126 - 2**6
+- p224Square(&f2, &f2, &c)
+- }
+- p224Mul(&f1, &f1, &f2, &c) // 2**126 - 1
+- p224Square(&f1, &f1, &c) // 2**127 - 2
+- p224Mul(&f1, &f1, in, &c) // 2**127 - 1
+- for i := 0; i < 97; i++ { // 2**224 - 2**97
+- p224Square(&f1, &f1, &c)
+- }
+- p224Mul(out, &f1, &f3, &c) // 2**224 - 2**96 - 1
+-}
+-
+-// p224Contract converts a FieldElement to its unique, minimal form.
+-//
+-// On entry, in[i] < 2**29
+-// On exit, in[i] < 2**28
+-func p224Contract(out, in *p224FieldElement) {
+- copy(out[:], in[:])
+-
+- for i := 0; i < 7; i++ {
+- out[i+1] += out[i] >> 28
+- out[i] &= bottom28Bits
+- }
+- top := out[7] >> 28
+- out[7] &= bottom28Bits
+-
+- out[0] -= top
+- out[3] += top << 12
+-
+- // We may just have made out[i] negative. So we carry down. If we made
+- // out[0] negative then we know that out[3] is sufficiently positive
+- // because we just added to it.
+- for i := 0; i < 3; i++ {
+- mask := uint32(int32(out[i]) >> 31)
+- out[i] += (1 << 28) & mask
+- out[i+1] -= 1 & mask
+- }
+-
+- // We might have pushed out[3] over 2**28 so we perform another, partial,
+- // carry chain.
+- for i := 3; i < 7; i++ {
+- out[i+1] += out[i] >> 28
+- out[i] &= bottom28Bits
+- }
+- top = out[7] >> 28
+- out[7] &= bottom28Bits
+-
+- // Eliminate top while maintaining the same value mod p.
+- out[0] -= top
+- out[3] += top << 12
+-
+- // There are two cases to consider for out[3]:
+- // 1) The first time that we eliminated top, we didn't push out[3] over
+- // 2**28. In this case, the partial carry chain didn't change any values
+- // and top is zero.
+- // 2) We did push out[3] over 2**28 the first time that we eliminated top.
+- // The first value of top was in [0..16), therefore, prior to eliminating
+- // the first top, 0xfff1000 <= out[3] <= 0xfffffff. Therefore, after
+- // overflowing and being reduced by the second carry chain, out[3] <=
+- // 0xf000. Thus it cannot have overflowed when we eliminated top for the
+- // second time.
+-
+- // Again, we may just have made out[0] negative, so do the same carry down.
+- // As before, if we made out[0] negative then we know that out[3] is
+- // sufficiently positive.
+- for i := 0; i < 3; i++ {
+- mask := uint32(int32(out[i]) >> 31)
+- out[i] += (1 << 28) & mask
+- out[i+1] -= 1 & mask
+- }
+-
+- // Now we see if the value is >= p and, if so, subtract p.
+-
+- // First we build a mask from the top four limbs, which must all be
+- // equal to bottom28Bits if the whole value is >= p. If top4AllOnes
+- // ends up with any zero bits in the bottom 28 bits, then this wasn't
+- // true.
+- top4AllOnes := uint32(0xffffffff)
+- for i := 4; i < 8; i++ {
+- top4AllOnes &= out[i]
+- }
+- top4AllOnes |= 0xf0000000
+- // Now we replicate any zero bits to all the bits in top4AllOnes.
+- top4AllOnes &= top4AllOnes >> 16
+- top4AllOnes &= top4AllOnes >> 8
+- top4AllOnes &= top4AllOnes >> 4
+- top4AllOnes &= top4AllOnes >> 2
+- top4AllOnes &= top4AllOnes >> 1
+- top4AllOnes = uint32(int32(top4AllOnes<<31) >> 31)
+-
+- // Now we test whether the bottom three limbs are non-zero.
+- bottom3NonZero := out[0] | out[1] | out[2]
+- bottom3NonZero |= bottom3NonZero >> 16
+- bottom3NonZero |= bottom3NonZero >> 8
+- bottom3NonZero |= bottom3NonZero >> 4
+- bottom3NonZero |= bottom3NonZero >> 2
+- bottom3NonZero |= bottom3NonZero >> 1
+- bottom3NonZero = uint32(int32(bottom3NonZero<<31) >> 31)
+-
+- // Everything depends on the value of out[3].
+- // If it's > 0xffff000 and top4AllOnes != 0 then the whole value is >= p
+- // If it's = 0xffff000 and top4AllOnes != 0 and bottom3NonZero != 0,
+- // then the whole value is >= p
+- // If it's < 0xffff000, then the whole value is < p
+- n := out[3] - 0xffff000
+- out3Equal := n
+- out3Equal |= out3Equal >> 16
+- out3Equal |= out3Equal >> 8
+- out3Equal |= out3Equal >> 4
+- out3Equal |= out3Equal >> 2
+- out3Equal |= out3Equal >> 1
+- out3Equal = ^uint32(int32(out3Equal<<31) >> 31)
+-
+- // If out[3] > 0xffff000 then n's MSB will be zero.
+- out3GT := ^uint32(int32(n) >> 31)
+-
+- mask := top4AllOnes & ((out3Equal & bottom3NonZero) | out3GT)
+- out[0] -= 1 & mask
+- out[3] -= 0xffff000 & mask
+- out[4] -= 0xfffffff & mask
+- out[5] -= 0xfffffff & mask
+- out[6] -= 0xfffffff & mask
+- out[7] -= 0xfffffff & mask
+-}
+-
+-// Group element functions.
+-//
+-// These functions deal with group elements. The group is an elliptic curve
+-// group with a = -3 defined in FIPS 186-3, section D.2.2.
+-
+-// p224AddJacobian computes *out = a+b where a != b.
+-func p224AddJacobian(x3, y3, z3, x1, y1, z1, x2, y2, z2 *p224FieldElement) {
+- // See http://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#addition-p224Add-2007-bl
+- var z1z1, z2z2, u1, u2, s1, s2, h, i, j, r, v p224FieldElement
+- var c p224LargeFieldElement
+-
+- z1IsZero := p224IsZero(z1)
+- z2IsZero := p224IsZero(z2)
+-
+- // Z1Z1 = Z1²
+- p224Square(&z1z1, z1, &c)
+- // Z2Z2 = Z2²
+- p224Square(&z2z2, z2, &c)
+- // U1 = X1*Z2Z2
+- p224Mul(&u1, x1, &z2z2, &c)
+- // U2 = X2*Z1Z1
+- p224Mul(&u2, x2, &z1z1, &c)
+- // S1 = Y1*Z2*Z2Z2
+- p224Mul(&s1, z2, &z2z2, &c)
+- p224Mul(&s1, y1, &s1, &c)
+- // S2 = Y2*Z1*Z1Z1
+- p224Mul(&s2, z1, &z1z1, &c)
+- p224Mul(&s2, y2, &s2, &c)
+- // H = U2-U1
+- p224Sub(&h, &u2, &u1)
+- p224Reduce(&h)
+- xEqual := p224IsZero(&h)
+- // I = (2*H)²
+- for j := 0; j < 8; j++ {
+- i[j] = h[j] << 1
+- }
+- p224Reduce(&i)
+- p224Square(&i, &i, &c)
+- // J = H*I
+- p224Mul(&j, &h, &i, &c)
+- // r = 2*(S2-S1)
+- p224Sub(&r, &s2, &s1)
+- p224Reduce(&r)
+- yEqual := p224IsZero(&r)
+- if xEqual == 1 && yEqual == 1 && z1IsZero == 0 && z2IsZero == 0 {
+- p224DoubleJacobian(x3, y3, z3, x1, y1, z1)
+- return
+- }
+- for i := 0; i < 8; i++ {
+- r[i] <<= 1
+- }
+- p224Reduce(&r)
+- // V = U1*I
+- p224Mul(&v, &u1, &i, &c)
+- // Z3 = ((Z1+Z2)²-Z1Z1-Z2Z2)*H
+- p224Add(&z1z1, &z1z1, &z2z2)
+- p224Add(&z2z2, z1, z2)
+- p224Reduce(&z2z2)
+- p224Square(&z2z2, &z2z2, &c)
+- p224Sub(z3, &z2z2, &z1z1)
+- p224Reduce(z3)
+- p224Mul(z3, z3, &h, &c)
+- // X3 = r²-J-2*V
+- for i := 0; i < 8; i++ {
+- z1z1[i] = v[i] << 1
+- }
+- p224Add(&z1z1, &j, &z1z1)
+- p224Reduce(&z1z1)
+- p224Square(x3, &r, &c)
+- p224Sub(x3, x3, &z1z1)
+- p224Reduce(x3)
+- // Y3 = r*(V-X3)-2*S1*J
+- for i := 0; i < 8; i++ {
+- s1[i] <<= 1
+- }
+- p224Mul(&s1, &s1, &j, &c)
+- p224Sub(&z1z1, &v, x3)
+- p224Reduce(&z1z1)
+- p224Mul(&z1z1, &z1z1, &r, &c)
+- p224Sub(y3, &z1z1, &s1)
+- p224Reduce(y3)
+-
+- p224CopyConditional(x3, x2, z1IsZero)
+- p224CopyConditional(x3, x1, z2IsZero)
+- p224CopyConditional(y3, y2, z1IsZero)
+- p224CopyConditional(y3, y1, z2IsZero)
+- p224CopyConditional(z3, z2, z1IsZero)
+- p224CopyConditional(z3, z1, z2IsZero)
+-}
+-
+-// p224DoubleJacobian computes *out = a+a.
+-func p224DoubleJacobian(x3, y3, z3, x1, y1, z1 *p224FieldElement) {
+- var delta, gamma, beta, alpha, t p224FieldElement
+- var c p224LargeFieldElement
+-
+- p224Square(&delta, z1, &c)
+- p224Square(&gamma, y1, &c)
+- p224Mul(&beta, x1, &gamma, &c)
+-
+- // alpha = 3*(X1-delta)*(X1+delta)
+- p224Add(&t, x1, &delta)
+- for i := 0; i < 8; i++ {
+- t[i] += t[i] << 1
+- }
+- p224Reduce(&t)
+- p224Sub(&alpha, x1, &delta)
+- p224Reduce(&alpha)
+- p224Mul(&alpha, &alpha, &t, &c)
+-
+- // Z3 = (Y1+Z1)²-gamma-delta
+- p224Add(z3, y1, z1)
+- p224Reduce(z3)
+- p224Square(z3, z3, &c)
+- p224Sub(z3, z3, &gamma)
+- p224Reduce(z3)
+- p224Sub(z3, z3, &delta)
+- p224Reduce(z3)
+-
+- // X3 = alpha²-8*beta
+- for i := 0; i < 8; i++ {
+- delta[i] = beta[i] << 3
+- }
+- p224Reduce(&delta)
+- p224Square(x3, &alpha, &c)
+- p224Sub(x3, x3, &delta)
+- p224Reduce(x3)
+-
+- // Y3 = alpha*(4*beta-X3)-8*gamma²
+- for i := 0; i < 8; i++ {
+- beta[i] <<= 2
+- }
+- p224Sub(&beta, &beta, x3)
+- p224Reduce(&beta)
+- p224Square(&gamma, &gamma, &c)
+- for i := 0; i < 8; i++ {
+- gamma[i] <<= 3
+- }
+- p224Reduce(&gamma)
+- p224Mul(y3, &alpha, &beta, &c)
+- p224Sub(y3, y3, &gamma)
+- p224Reduce(y3)
+-}
+-
+-// p224CopyConditional sets *out = *in iff the least-significant-bit of control
+-// is true, and it runs in constant time.
+-func p224CopyConditional(out, in *p224FieldElement, control uint32) {
+- control <<= 31
+- control = uint32(int32(control) >> 31)
+-
+- for i := 0; i < 8; i++ {
+- out[i] ^= (out[i] ^ in[i]) & control
+- }
+-}
+-
+-func p224ScalarMult(outX, outY, outZ, inX, inY, inZ *p224FieldElement, scalar []byte) {
+- var xx, yy, zz p224FieldElement
+- for i := 0; i < 8; i++ {
+- outX[i] = 0
+- outY[i] = 0
+- outZ[i] = 0
+- }
+-
+- for _, byte := range scalar {
+- for bitNum := uint(0); bitNum < 8; bitNum++ {
+- p224DoubleJacobian(outX, outY, outZ, outX, outY, outZ)
+- bit := uint32((byte >> (7 - bitNum)) & 1)
+- p224AddJacobian(&xx, &yy, &zz, inX, inY, inZ, outX, outY, outZ)
+- p224CopyConditional(outX, &xx, bit)
+- p224CopyConditional(outY, &yy, bit)
+- p224CopyConditional(outZ, &zz, bit)
+- }
+- }
+-}
+-
+-// p224ToAffine converts from Jacobian to affine form.
+-func p224ToAffine(x, y, z *p224FieldElement) (*big.Int, *big.Int) {
+- var zinv, zinvsq, outx, outy p224FieldElement
+- var tmp p224LargeFieldElement
+-
+- if isPointAtInfinity := p224IsZero(z); isPointAtInfinity == 1 {
+- return new(big.Int), new(big.Int)
+- }
+-
+- p224Invert(&zinv, z)
+- p224Square(&zinvsq, &zinv, &tmp)
+- p224Mul(x, x, &zinvsq, &tmp)
+- p224Mul(&zinvsq, &zinvsq, &zinv, &tmp)
+- p224Mul(y, y, &zinvsq, &tmp)
+-
+- p224Contract(&outx, x)
+- p224Contract(&outy, y)
+- return p224ToBig(&outx), p224ToBig(&outy)
+-}
+-
+-// get28BitsFromEnd returns the least-significant 28 bits from buf>>shift,
+-// where buf is interpreted as a big-endian number.
+-func get28BitsFromEnd(buf []byte, shift uint) (uint32, []byte) {
+- var ret uint32
+-
+- for i := uint(0); i < 4; i++ {
+- var b byte
+- if l := len(buf); l > 0 {
+- b = buf[l-1]
+- // We don't remove the byte if we're about to return and we're not
+- // reading all of it.
+- if i != 3 || shift == 4 {
+- buf = buf[:l-1]
+- }
+- }
+- ret |= uint32(b) << (8 * i) >> shift
+- }
+- ret &= bottom28Bits
+- return ret, buf
+-}
+-
+-// p224FromBig sets *out = *in.
+-func p224FromBig(out *p224FieldElement, in *big.Int) {
+- bytes := in.Bytes()
+- out[0], bytes = get28BitsFromEnd(bytes, 0)
+- out[1], bytes = get28BitsFromEnd(bytes, 4)
+- out[2], bytes = get28BitsFromEnd(bytes, 0)
+- out[3], bytes = get28BitsFromEnd(bytes, 4)
+- out[4], bytes = get28BitsFromEnd(bytes, 0)
+- out[5], bytes = get28BitsFromEnd(bytes, 4)
+- out[6], bytes = get28BitsFromEnd(bytes, 0)
+- out[7], bytes = get28BitsFromEnd(bytes, 4)
+-}
+-
+-// p224ToBig returns in as a big.Int.
+-func p224ToBig(in *p224FieldElement) *big.Int {
+- var buf [28]byte
+- buf[27] = byte(in[0])
+- buf[26] = byte(in[0] >> 8)
+- buf[25] = byte(in[0] >> 16)
+- buf[24] = byte(((in[0] >> 24) & 0x0f) | (in[1]<<4)&0xf0)
+-
+- buf[23] = byte(in[1] >> 4)
+- buf[22] = byte(in[1] >> 12)
+- buf[21] = byte(in[1] >> 20)
+-
+- buf[20] = byte(in[2])
+- buf[19] = byte(in[2] >> 8)
+- buf[18] = byte(in[2] >> 16)
+- buf[17] = byte(((in[2] >> 24) & 0x0f) | (in[3]<<4)&0xf0)
+-
+- buf[16] = byte(in[3] >> 4)
+- buf[15] = byte(in[3] >> 12)
+- buf[14] = byte(in[3] >> 20)
+-
+- buf[13] = byte(in[4])
+- buf[12] = byte(in[4] >> 8)
+- buf[11] = byte(in[4] >> 16)
+- buf[10] = byte(((in[4] >> 24) & 0x0f) | (in[5]<<4)&0xf0)
+-
+- buf[9] = byte(in[5] >> 4)
+- buf[8] = byte(in[5] >> 12)
+- buf[7] = byte(in[5] >> 20)
+-
+- buf[6] = byte(in[6])
+- buf[5] = byte(in[6] >> 8)
+- buf[4] = byte(in[6] >> 16)
+- buf[3] = byte(((in[6] >> 24) & 0x0f) | (in[7]<<4)&0xf0)
+-
+- buf[2] = byte(in[7] >> 4)
+- buf[1] = byte(in[7] >> 12)
+- buf[0] = byte(in[7] >> 20)
+-
+- return new(big.Int).SetBytes(buf[:])
+-}
+--- libgo/go/crypto/elliptic/p224_test.go.jj 2012-11-15 18:26:57.000000000 +0100
++++ libgo/go/crypto/elliptic/p224_test.go 2014-03-05 15:29:58.743430988 +0100
+@@ -1,47 +0,0 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package elliptic
+-
+-import (
+- "math/big"
+- "testing"
+-)
+-
+-var toFromBigTests = []string{
+- "0",
+- "1",
+- "23",
+- "b70e0cb46bb4bf7f321390b94a03c1d356c01122343280d6105c1d21",
+- "706a46d476dcb76798e6046d89474788d164c18032d268fd10704fa6",
+-}
+-
+-func p224AlternativeToBig(in *p224FieldElement) *big.Int {
+- ret := new(big.Int)
+- tmp := new(big.Int)
+-
+- for i := uint(0); i < 8; i++ {
+- tmp.SetInt64(int64(in[i]))
+- tmp.Lsh(tmp, 28*i)
+- ret.Add(ret, tmp)
+- }
+- ret.Mod(ret, p224.P)
+- return ret
+-}
+-
+-func TestToFromBig(t *testing.T) {
+- for i, test := range toFromBigTests {
+- n, _ := new(big.Int).SetString(test, 16)
+- var x p224FieldElement
+- p224FromBig(&x, n)
+- m := p224ToBig(&x)
+- if n.Cmp(m) != 0 {
+- t.Errorf("#%d: %x != %x", i, n, m)
+- }
+- q := p224AlternativeToBig(&x)
+- if n.Cmp(q) != 0 {
+- t.Errorf("#%d: %x != %x (alternative)", i, n, m)
+- }
+- }
+-}
+--- libgo/go/crypto/elliptic/p256.go.jj 2013-11-07 11:59:09.000000000 +0100
++++ libgo/go/crypto/elliptic/p256.go 2014-03-05 15:34:31.910414701 +0100
+@@ -233,6 +233,8 @@ func p256ReduceCarry(inout *[p256Limbs]u
+ inout[7] += carry << 25
+ }
+
++const bottom28Bits = 0xfffffff
++
+ // p256Sum sets out = in+in2.
+ //
+ // On entry, in[i]+in2[i] must not overflow a 32-bit word.
+@@ -265,6 +267,7 @@ const (
+ two31m2 = 1<<31 - 1<<2
+ two31p24m2 = 1<<31 + 1<<24 - 1<<2
+ two30m27m2 = 1<<30 - 1<<27 - 1<<2
++ two31m3 = 1<<31 - 1<<3
+ )
+
+ // p256Zero31 is 0 mod p.
diff --git a/SOURCES/gcc49-libgomp-omp_h-multilib.patch b/SOURCES/gcc49-libgomp-omp_h-multilib.patch
new file mode 100644
index 0000000..d0e98d1
--- /dev/null
+++ b/SOURCES/gcc49-libgomp-omp_h-multilib.patch
@@ -0,0 +1,17 @@
+2008-06-09 Jakub Jelinek
+
+ * omp.h.in (omp_nest_lock_t): Fix up for Linux multilibs.
+
+--- libgomp/omp.h.in.jj 2008-06-09 13:34:05.000000000 +0200
++++ libgomp/omp.h.in 2008-06-09 13:34:48.000000000 +0200
+@@ -42,8 +42,8 @@ typedef struct
+
+ typedef struct
+ {
+- unsigned char _x[@OMP_NEST_LOCK_SIZE@]
+- __attribute__((__aligned__(@OMP_NEST_LOCK_ALIGN@)));
++ unsigned char _x[8 + sizeof (void *)]
++ __attribute__((__aligned__(sizeof (void *))));
+ } omp_nest_lock_t;
+ #endif
+
diff --git a/SOURCES/gcc49-libquadmath-compat.patch b/SOURCES/gcc49-libquadmath-compat.patch
new file mode 100644
index 0000000..50376fb
--- /dev/null
+++ b/SOURCES/gcc49-libquadmath-compat.patch
@@ -0,0 +1,164 @@
+--- libquadmath/Makefile.am.jj 2012-11-02 09:01:48.927563274 +0100
++++ libquadmath/Makefile.am 2013-01-29 13:36:18.186907880 +0100
+@@ -34,15 +34,19 @@ version_dep =
+ endif
+
+ toolexeclib_LTLIBRARIES = libquadmath.la
++noinst_LTLIBRARIES = libquadmathconvenience.la
+ libquadmath_la_LIBADD =
+ libquadmath_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+ $(version_arg) $(lt_host_flags) -lm
+ libquadmath_la_DEPENDENCIES = $(version_dep) $(libquadmath_la_LIBADD)
++libquadmathconvenience_la_LIBADD =
++libquadmathconvenience_la_LDFLAGS =
++libquadmathconvenience_la_DEPENDENCIES =
+
+ nodist_libsubinclude_HEADERS = quadmath.h quadmath_weak.h
+ libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include
+
+-libquadmath_la_SOURCES = \
++sources = \
+ math/x2y2m1q.c math/isinf_nsq.c math/acoshq.c math/fmodq.c \
+ math/acosq.c math/frexpq.c \
+ math/rem_pio2q.c math/asinhq.c math/hypotq.c math/remainderq.c \
+@@ -68,7 +72,8 @@ libquadmath_la_SOURCES = \
+ printf/mul_n.c printf/mul.c printf/printf_fphex.c printf/printf_fp.c \
+ printf/quadmath-printf.c printf/rshift.c printf/submul_1.c printf/sub_n.c \
+ strtod/strtoflt128.c strtod/mpn2flt128.c strtod/tens_in_limb.c
+-
++libquadmath_la_SOURCES = $(sources)
++libquadmathconvenience_la_SOURCES = $(sources)
+
+ # Work around what appears to be a GNU make bug handling MAKEFLAGS
+ # values defined in terms of make variables, as is the case for CC and
+--- libquadmath/Makefile.in.jj 2012-11-14 08:43:44.014300760 +0100
++++ libquadmath/Makefile.in 2013-01-29 13:36:27.929842599 +0100
+@@ -37,6 +37,7 @@ build_triplet = @build@
+ host_triplet = @host@
+ target_triplet = @target@
+ @BUILD_LIBQUADMATH_FALSE@libquadmath_la_DEPENDENCIES =
++@BUILD_LIBQUADMATH_FALSE@libquadmathconvenience_la_DEPENDENCIES =
+ subdir = .
+ DIST_COMMON = ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/configure $(am__configure_deps) \
+@@ -85,9 +86,9 @@ am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+ am__installdirs = "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(infodir)" \
+ "$(DESTDIR)$(libsubincludedir)"
+-LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
++LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
+ am__dirstamp = $(am__leading_dot)dirstamp
+-@BUILD_LIBQUADMATH_TRUE@am_libquadmath_la_OBJECTS = math/x2y2m1q.lo \
++@BUILD_LIBQUADMATH_TRUE@am__objects_1 = math/x2y2m1q.lo \
+ @BUILD_LIBQUADMATH_TRUE@ math/isinf_nsq.lo math/acoshq.lo \
+ @BUILD_LIBQUADMATH_TRUE@ math/fmodq.lo math/acosq.lo \
+ @BUILD_LIBQUADMATH_TRUE@ math/frexpq.lo math/rem_pio2q.lo \
+@@ -143,12 +144,22 @@ am__dirstamp = $(am__leading_dot)dirstam
+ @BUILD_LIBQUADMATH_TRUE@ printf/sub_n.lo strtod/strtoflt128.lo \
+ @BUILD_LIBQUADMATH_TRUE@ strtod/mpn2flt128.lo \
+ @BUILD_LIBQUADMATH_TRUE@ strtod/tens_in_limb.lo
++@BUILD_LIBQUADMATH_TRUE@am_libquadmath_la_OBJECTS = $(am__objects_1)
+ libquadmath_la_OBJECTS = $(am_libquadmath_la_OBJECTS)
+ libquadmath_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libquadmath_la_LDFLAGS) $(LDFLAGS) -o $@
+ @BUILD_LIBQUADMATH_TRUE@am_libquadmath_la_rpath = -rpath \
+ @BUILD_LIBQUADMATH_TRUE@ $(toolexeclibdir)
++@BUILD_LIBQUADMATH_TRUE@am_libquadmathconvenience_la_OBJECTS = \
++@BUILD_LIBQUADMATH_TRUE@ $(am__objects_1)
++libquadmathconvenience_la_OBJECTS = \
++ $(am_libquadmathconvenience_la_OBJECTS)
++libquadmathconvenience_la_LINK = $(LIBTOOL) --tag=CC \
++ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
++ $(AM_CFLAGS) $(CFLAGS) $(libquadmathconvenience_la_LDFLAGS) \
++ $(LDFLAGS) -o $@
++@BUILD_LIBQUADMATH_TRUE@am_libquadmathconvenience_la_rpath =
+ DEFAULT_INCLUDES = -I.@am__isrc@
+ depcomp = $(SHELL) $(top_srcdir)/../depcomp
+ am__depfiles_maybe = depfiles
+@@ -162,7 +173,8 @@ CCLD = $(CC)
+ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+-SOURCES = $(libquadmath_la_SOURCES)
++SOURCES = $(libquadmath_la_SOURCES) \
++ $(libquadmathconvenience_la_SOURCES)
+ MULTISRCTOP =
+ MULTIBUILDTOP =
+ MULTIDIRS =
+@@ -318,14 +330,18 @@ AUTOMAKE_OPTIONS = 1.8 foreign
+ @BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_GNU_TRUE@@LIBQUAD_USE_SYMVER_TRUE@version_dep = $(srcdir)/quadmath.map
+ @BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@version_dep = quadmath.map-sun
+ @BUILD_LIBQUADMATH_TRUE@toolexeclib_LTLIBRARIES = libquadmath.la
++@BUILD_LIBQUADMATH_TRUE@noinst_LTLIBRARIES = libquadmathconvenience.la
+ @BUILD_LIBQUADMATH_TRUE@libquadmath_la_LIBADD =
+ @BUILD_LIBQUADMATH_TRUE@libquadmath_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+ @BUILD_LIBQUADMATH_TRUE@ $(version_arg) $(lt_host_flags) -lm
+
+ @BUILD_LIBQUADMATH_TRUE@libquadmath_la_DEPENDENCIES = $(version_dep) $(libquadmath_la_LIBADD)
++@BUILD_LIBQUADMATH_TRUE@libquadmathconvenience_la_LIBADD =
++@BUILD_LIBQUADMATH_TRUE@libquadmathconvenience_la_LDFLAGS =
++@BUILD_LIBQUADMATH_TRUE@libquadmathconvenience_la_DEPENDENCIES =
+ @BUILD_LIBQUADMATH_TRUE@nodist_libsubinclude_HEADERS = quadmath.h quadmath_weak.h
+ @BUILD_LIBQUADMATH_TRUE@libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include
+-@BUILD_LIBQUADMATH_TRUE@libquadmath_la_SOURCES = \
++@BUILD_LIBQUADMATH_TRUE@sources = \
+ @BUILD_LIBQUADMATH_TRUE@ math/x2y2m1q.c math/isinf_nsq.c math/acoshq.c math/fmodq.c \
+ @BUILD_LIBQUADMATH_TRUE@ math/acosq.c math/frexpq.c \
+ @BUILD_LIBQUADMATH_TRUE@ math/rem_pio2q.c math/asinhq.c math/hypotq.c math/remainderq.c \
+@@ -352,6 +368,8 @@ AUTOMAKE_OPTIONS = 1.8 foreign
+ @BUILD_LIBQUADMATH_TRUE@ printf/quadmath-printf.c printf/rshift.c printf/submul_1.c printf/sub_n.c \
+ @BUILD_LIBQUADMATH_TRUE@ strtod/strtoflt128.c strtod/mpn2flt128.c strtod/tens_in_limb.c
+
++@BUILD_LIBQUADMATH_TRUE@libquadmath_la_SOURCES = $(sources)
++@BUILD_LIBQUADMATH_TRUE@libquadmathconvenience_la_SOURCES = $(sources)
+
+ # Work around what appears to be a GNU make bug handling MAKEFLAGS
+ # values defined in terms of make variables, as is the case for CC and
+@@ -475,6 +493,15 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_
+
+ distclean-hdr:
+ -rm -f config.h stamp-h1
++
++clean-noinstLTLIBRARIES:
++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
++ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
++ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
++ test "$$dir" != "$$p" || dir=.; \
++ echo "rm -f \"$${dir}/so_locations\""; \
++ rm -f "$${dir}/so_locations"; \
++ done
+ install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(toolexeclibdir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)"
+@@ -657,6 +684,8 @@ strtod/tens_in_limb.lo: strtod/$(am__dir
+ strtod/$(DEPDIR)/$(am__dirstamp)
+ libquadmath.la: $(libquadmath_la_OBJECTS) $(libquadmath_la_DEPENDENCIES)
+ $(libquadmath_la_LINK) $(am_libquadmath_la_rpath) $(libquadmath_la_OBJECTS) $(libquadmath_la_LIBADD) $(LIBS)
++libquadmathconvenience.la: $(libquadmathconvenience_la_OBJECTS) $(libquadmathconvenience_la_DEPENDENCIES)
++ $(libquadmathconvenience_la_LINK) $(am_libquadmathconvenience_la_rpath) $(libquadmathconvenience_la_OBJECTS) $(libquadmathconvenience_la_LIBADD) $(LIBS)
+
+ mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+@@ -1278,7 +1307,8 @@ maintainer-clean-generic:
+ clean: clean-am clean-multi
+
+ clean-am: clean-aminfo clean-generic clean-libtool \
+- clean-toolexeclibLTLIBRARIES mostlyclean-am
++ clean-noinstLTLIBRARIES clean-toolexeclibLTLIBRARIES \
++ mostlyclean-am
+
+ distclean: distclean-am distclean-multi
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+@@ -1434,8 +1464,9 @@ uninstall-am: uninstall-dvi-am uninstall
+
+ .PHONY: CTAGS GTAGS all all-am all-local all-multi am--refresh check \
+ check-am clean clean-aminfo clean-generic clean-libtool \
+- clean-multi clean-toolexeclibLTLIBRARIES ctags dist-info \
+- distclean distclean-compile distclean-generic distclean-hdr \
++ clean-multi clean-noinstLTLIBRARIES \
++ clean-toolexeclibLTLIBRARIES ctags dist-info distclean \
++ distclean-compile distclean-generic distclean-hdr \
+ distclean-libtool distclean-multi distclean-tags dvi dvi-am \
+ html html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
diff --git a/SOURCES/gcc49-libstdc++-compat.patch b/SOURCES/gcc49-libstdc++-compat.patch
new file mode 100644
index 0000000..6f1f40b
--- /dev/null
+++ b/SOURCES/gcc49-libstdc++-compat.patch
@@ -0,0 +1,4953 @@
+--- libstdc++-v3/src/Makefile.am.jj 2014-05-13 10:30:38.316053664 +0200
++++ libstdc++-v3/src/Makefile.am 2014-05-15 15:53:13.149790502 +0200
+@@ -22,11 +22,13 @@
+
+ include $(top_srcdir)/fragment.am
+
+-SUBDIRS = c++98 c++11
++SUBDIRS = c++98 c++11 nonshared98 nonshared11
+
+ # Cross compiler support.
+ toolexeclib_LTLIBRARIES = libstdc++.la
+
++noinst_LTLIBRARIES = libstdc++_nonshared44.la libstdc++_nonshared48.la
++
+ vpath % $(top_srcdir)/src/c++98
+ vpath % $(top_srcdir)/src/c++11
+
+@@ -40,6 +42,25 @@ endif
+ parallel_compat_sources = \
+ compatibility-parallel_list.cc compatibility-parallel_list-2.cc
+
++libstdc___nonshared44_la_SOURCES =
++
++libstdc___nonshared44_la_LIBADD = \
++ $(top_builddir)/src/nonshared98/libnonshared98convenience44.la \
++ $(top_builddir)/src/nonshared11/libnonshared11convenience44.la
++
++libstdc___nonshared44_la_DEPENDENCIES = \
++ $(top_builddir)/src/nonshared98/libnonshared98convenience44.la \
++ $(top_builddir)/src/nonshared11/libnonshared11convenience44.la
++
++libstdc___nonshared48_la_SOURCES =
++
++libstdc___nonshared48_la_LIBADD = \
++ $(top_builddir)/src/nonshared98/libnonshared98convenience48.la \
++ $(top_builddir)/src/nonshared11/libnonshared11convenience48.la
++
++libstdc___nonshared48_la_DEPENDENCIES = \
++ $(top_builddir)/src/nonshared98/libnonshared98convenience48.la \
++ $(top_builddir)/src/nonshared11/libnonshared11convenience48.la
+
+ cxx98_sources = \
+ compatibility.cc \
+--- libstdc++-v3/src/nonshared11/new_handler.cc.jj 2014-05-15 15:53:13.149790502 +0200
++++ libstdc++-v3/src/nonshared11/new_handler.cc 2014-05-15 15:53:13.149790502 +0200
+@@ -0,0 +1,72 @@
++// Implementation file for the -*- C++ -*- dynamic memory management header.
++
++// Copyright (C) 1996-2014 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.
++//
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++#include
++
++// This is inherently thread-unsafe, but so is libstdc++ < 4.9
++// std::set_new_handler and this hopefully doesn't make things much worse
++// than that.
++namespace
++{
++ __gnu_cxx::__mutex mx;
++ std::new_handler handler;
++
++ void new_handler_wrapper ()
++ {
++ std::new_handler h;
++ {
++ __gnu_cxx::__scoped_lock l(mx);
++ h = handler;
++ }
++ h ();
++ }
++}
++
++std::new_handler
++std::get_new_handler () noexcept
++{
++ __gnu_cxx::__scoped_lock l(mx);
++ handler = std::set_new_handler (new_handler_wrapper);
++ std::set_new_handler (handler);
++ return handler;
++}
++
++asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD0Ev");
++asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD1Ev");
++asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD2Ev");
++asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD0Ev");
++asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD1Ev");
++asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD2Ev");
++asm (".hidden _ZN9__gnu_cxx30__throw_concurrence_lock_errorEv");
++asm (".hidden _ZN9__gnu_cxx32__throw_concurrence_unlock_errorEv");
++asm (".hidden _ZNK9__gnu_cxx24__concurrence_lock_error4whatEv");
++asm (".hidden _ZNK9__gnu_cxx26__concurrence_unlock_error4whatEv");
++asm (".hidden _ZTIN9__gnu_cxx24__concurrence_lock_errorE");
++asm (".hidden _ZTIN9__gnu_cxx26__concurrence_unlock_errorE");
++asm (".hidden _ZTSN9__gnu_cxx24__concurrence_lock_errorE");
++asm (".hidden _ZTSN9__gnu_cxx26__concurrence_unlock_errorE");
++asm (".hidden _ZTVN9__gnu_cxx24__concurrence_lock_errorE");
++asm (".hidden _ZTVN9__gnu_cxx26__concurrence_unlock_errorE");
+--- libstdc++-v3/src/nonshared11/atexit_thread.cc.jj 2014-05-15 15:53:13.149790502 +0200
++++ libstdc++-v3/src/nonshared11/atexit_thread.cc 2014-05-15 15:53:13.149790502 +0200
+@@ -0,0 +1,23 @@
++// Copyright (C) 2013-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../libsupc++/atexit_thread.cc"
+--- libstdc++-v3/src/nonshared11/future.cc.jj 2014-05-15 15:53:13.149790502 +0200
++++ libstdc++-v3/src/nonshared11/future.cc 2014-05-15 15:53:13.149790502 +0200
+@@ -0,0 +1,29 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++#undef _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE
++#include "../c++11/future.cc"
++const std::error_category* _ZSt15future_category = &__future_category_instance();
++asm (".hidden _ZNSt13__future_base11_State_base15_M_run_deferredEv");
++asm (".hidden _ZTSNSt13__future_base11_State_baseE");
++asm (".hidden _ZTSNSt13__future_base12_Result_baseE");
+--- libstdc++-v3/src/nonshared11/snprintf_lite.cc.jj 2014-05-15 15:53:13.149790502 +0200
++++ libstdc++-v3/src/nonshared11/snprintf_lite.cc 2014-05-15 15:53:13.149790502 +0200
+@@ -0,0 +1,31 @@
++// Copyright (C) 2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../c++11/snprintf_lite.cc"
++#ifdef __i386__
++asm (".hidden _ZN9__gnu_cxx15__concat_size_tEPcjj");
++asm (".hidden _ZN9__gnu_cxx15__snprintf_liteEPcjPKcS0_");
++#else
++asm (".hidden _ZN9__gnu_cxx15__concat_size_tEPcmm");
++asm (".hidden _ZN9__gnu_cxx15__snprintf_liteEPcmPKcP13__va_list_tag");
++#endif
++asm (".hidden _ZN9__gnu_cxx26__throw_insufficient_spaceEPKcS1_");
+--- libstdc++-v3/src/nonshared11/Makefile.am.jj 2014-05-15 15:53:13.149790502 +0200
++++ libstdc++-v3/src/nonshared11/Makefile.am 2014-05-15 15:53:13.149790502 +0200
+@@ -0,0 +1,129 @@
++## Makefile for the C++03 sources of the GNU C++ Standard library.
++##
++## Copyright (C) 1997-2014 Free Software Foundation, Inc.
++##
++## This file is part of the libstdc++ version 3 distribution.
++## Process this file with automake to produce Makefile.in.
++
++## This file is part of the GNU ISO C++ Library. This library 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.
++
++## This library 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 this library; see the file COPYING3. If not see
++## .
++
++include $(top_srcdir)/fragment.am
++
++# Convenience library for C++11 runtime.
++noinst_LTLIBRARIES = libnonshared11convenience44.la \
++ libnonshared11convenience48.la
++
++headers =
++
++sources = \
++ bad_array_length.cc \
++ bad_array_new.cc \
++ eh_aux_runtime.cc \
++ eh_terminate.cc \
++ new_handler.cc \
++ snprintf_lite.cc
++
++sources44 = \
++ limits.cc \
++ future.cc \
++ functexcept.cc \
++ placeholders.cc \
++ regex.cc \
++ functional.cc \
++ shared_ptr.cc \
++ nested_exception.cc \
++ debug.cc \
++ compatibility-thread-c++0x.cc \
++ atexit_thread.cc \
++ random.cc \
++ chrono.cc \
++ compatibility-atomic-c++0x.cc \
++ hashtable_c++0x.cc \
++ system_error.cc \
++ thread.cc \
++ $(inst_sources44)
++
++sources48 = \
++ regex48.cc \
++ functexcept48.cc
++
++if ENABLE_EXTERN_TEMPLATE
++# XTEMPLATE_FLAGS = -fno-implicit-templates
++inst_sources44 = \
++ string-inst.cc \
++ wstring-inst.cc \
++ fstream-inst.cc
++else
++# XTEMPLATE_FLAGS =
++inst_sources44 =
++endif
++
++vpath % $(top_srcdir)/src/nonshared11
++vpath % $(top_srcdir)
++
++libnonshared11convenience44_la_SOURCES = $(sources) $(sources44)
++libnonshared11convenience48_la_SOURCES = $(sources) $(sources48)
++
++# AM_CXXFLAGS needs to be in each subdirectory so that it can be
++# modified in a per-library or per-sub-library way. Need to manually
++# set this option because CONFIG_CXXFLAGS has to be after
++# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
++# as the occasion calls for it.
++AM_CXXFLAGS = \
++ -std=gnu++11 \
++ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
++ $(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \
++ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
++
++AM_MAKEFLAGS = \
++ "gxx_include_dir=$(gxx_include_dir)"
++
++# Libtool notes
++
++# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
++# last. (That way, things like -O2 passed down from the toplevel can
++# be overridden by --enable-debug.)
++
++# 2) In general, libtool expects an argument such as `--tag=CXX' when
++# using the C++ compiler, because that will enable the settings
++# detected when C++ support was being configured. However, when no
++# such flag is given in the command line, libtool attempts to figure
++# it out by matching the compiler name in each configuration section
++# against a prefix of the command line. The problem is that, if the
++# compiler name and its initial flags stored in the libtool
++# configuration file don't match those in the command line, libtool
++# can't decide which configuration to use, and it gives up. The
++# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
++# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
++# attempt to infer which configuration to use.
++# We have to put --tag disable-shared after --tag CXX lest things
++# CXX undo the affect of disable-shared.
++LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
++ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(EXTRA_CXX_FLAGS)
++
++LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
++
++# 3) We'd have a problem when building the shared libstdc++ object if
++# the rules automake generates would be used. We cannot allow g++ to
++# be used since this would add -lstdc++ to the link line which of
++# course is problematic at this point. So, we get the top-level
++# directory to configure libstdc++-v3 to use gcc as the C++
++# compilation driver.
++CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
++ --mode=link $(CXX) \
++ $(VTV_CXXLINKFLAGS) \
++ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
+--- libstdc++-v3/src/nonshared11/eh_terminate.cc.jj 2014-05-15 15:53:13.149790502 +0200
++++ libstdc++-v3/src/nonshared11/eh_terminate.cc 2014-05-15 15:53:13.149790502 +0200
+@@ -0,0 +1,92 @@
++// Implementation file for the -*- C++ -*- dynamic memory management header.
++
++// Copyright (C) 1994-2014 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.
++//
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++#include
++
++// This is inherently thread-unsafe, but so is libstdc++ < 4.9
++// std::set_terminate and std::set_unexpected and this hopefully
++// doesn't make things much worse than that.
++namespace
++{
++ __gnu_cxx::__mutex mx;
++ std::terminate_handler thandler;
++ std::unexpected_handler uhandler;
++
++ void terminate_handler_wrapper ()
++ {
++ std::terminate_handler h;
++ {
++ __gnu_cxx::__scoped_lock l(mx);
++ h = thandler;
++ }
++ h ();
++ }
++
++ void unexpected_handler_wrapper ()
++ {
++ std::terminate_handler h;
++ {
++ __gnu_cxx::__scoped_lock l(mx);
++ h = uhandler;
++ }
++ h ();
++ }
++}
++
++std::terminate_handler
++std::get_terminate () noexcept
++{
++ __gnu_cxx::__scoped_lock l(mx);
++ thandler = std::set_terminate (terminate_handler_wrapper);
++ std::set_terminate (thandler);
++ return thandler;
++}
++
++std::unexpected_handler
++std::get_unexpected () noexcept
++{
++ __gnu_cxx::__scoped_lock l(mx);
++ uhandler = std::set_unexpected (unexpected_handler_wrapper);
++ std::set_unexpected (uhandler);
++ return uhandler;
++}
++
++asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD0Ev");
++asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD1Ev");
++asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD2Ev");
++asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD0Ev");
++asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD1Ev");
++asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD2Ev");
++asm (".hidden _ZN9__gnu_cxx30__throw_concurrence_lock_errorEv");
++asm (".hidden _ZN9__gnu_cxx32__throw_concurrence_unlock_errorEv");
++asm (".hidden _ZNK9__gnu_cxx24__concurrence_lock_error4whatEv");
++asm (".hidden _ZNK9__gnu_cxx26__concurrence_unlock_error4whatEv");
++asm (".hidden _ZTIN9__gnu_cxx24__concurrence_lock_errorE");
++asm (".hidden _ZTIN9__gnu_cxx26__concurrence_unlock_errorE");
++asm (".hidden _ZTSN9__gnu_cxx24__concurrence_lock_errorE");
++asm (".hidden _ZTSN9__gnu_cxx26__concurrence_unlock_errorE");
++asm (".hidden _ZTVN9__gnu_cxx24__concurrence_lock_errorE");
++asm (".hidden _ZTVN9__gnu_cxx26__concurrence_unlock_errorE");
+--- libstdc++-v3/src/nonshared11/functional.cc.jj 2014-05-15 15:53:13.150790583 +0200
++++ libstdc++-v3/src/nonshared11/functional.cc 2014-05-15 15:53:13.149790502 +0200
+@@ -0,0 +1,24 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../c++11/functional.cc"
++asm (".hidden _ZTSSt17bad_function_call");
+--- libstdc++-v3/src/nonshared11/fstream-inst.cc.jj 2014-05-15 15:53:13.150790583 +0200
++++ libstdc++-v3/src/nonshared11/fstream-inst.cc 2014-05-15 15:53:13.150790583 +0200
+@@ -0,0 +1,47 @@
++// Explicit instantiation file.
++
++// Copyright (C) 1997-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++//
++// ISO C++ 14882:
++//
++
++#include
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++
++ typedef basic_filebuf FIC;
++
++ template
++ int FIC::_M_get_ext_pos(__state_type &);
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++ typedef basic_filebuf FIW;
++
++ template
++ int FIW::_M_get_ext_pos(__state_type &);
++
++#endif
++
++}
+--- libstdc++-v3/src/nonshared11/chrono.cc.jj 2014-05-15 15:53:13.150790583 +0200
++++ libstdc++-v3/src/nonshared11/chrono.cc 2014-05-15 15:53:13.150790583 +0200
+@@ -0,0 +1,23 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../c++11/chrono.cc"
+--- libstdc++-v3/src/nonshared11/functexcept.cc.jj 2014-05-15 15:53:13.150790583 +0200
++++ libstdc++-v3/src/nonshared11/functexcept.cc 2014-05-15 15:53:13.150790583 +0200
+@@ -0,0 +1,83 @@
++// Copyright (C) 2001-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++
++#ifdef _GLIBCXX_USE_NLS
++# include
++# define _(msgid) gettext (msgid)
++#else
++# define _(msgid) (msgid)
++#endif
++
++namespace __gnu_cxx
++{
++ int __snprintf_lite(char *__buf, size_t __bufsize, const char *__fmt,
++ va_list __ap);
++}
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++_GLIBCXX_BEGIN_NAMESPACE_VERSION
++
++ void
++ __throw_out_of_range_fmt(const char* __fmt, ...)
++ {
++ const size_t __len = __builtin_strlen(__fmt);
++ // We expect at most 2 numbers, and 1 short string. The additional
++ // 512 bytes should provide more than enough space for expansion.
++ const size_t __alloca_size = __len + 512;
++ char *const __s = static_cast(__builtin_alloca(__alloca_size));
++ va_list __ap;
++
++ va_start(__ap, __fmt);
++ __gnu_cxx::__snprintf_lite(__s, __alloca_size, __fmt, __ap);
++ _GLIBCXX_THROW_OR_ABORT(out_of_range(_(__s)));
++ va_end(__ap); // Not reached.
++ }
++
++ void
++ __throw_future_error(int __i __attribute__((unused)))
++ { _GLIBCXX_THROW_OR_ABORT(future_error(make_error_code(future_errc(__i)))); }
++
++ void
++ __throw_bad_function_call()
++ { _GLIBCXX_THROW_OR_ABORT(bad_function_call()); }
++
++ void
++ __throw_regex_error(regex_constants::error_type __ecode
++ __attribute__((unused)))
++ { _GLIBCXX_THROW_OR_ABORT(regex_error(__ecode)); }
++
++_GLIBCXX_END_NAMESPACE_VERSION
++} // namespace
+--- libstdc++-v3/src/nonshared11/debug.cc.jj 2014-05-15 15:53:13.150790583 +0200
++++ libstdc++-v3/src/nonshared11/debug.cc 2014-05-15 15:53:13.150790583 +0200
+@@ -0,0 +1,234 @@
++// Copyright (C) 2003-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++
++using namespace std;
++
++namespace
++{
++ void
++ swap_its(__gnu_debug::_Safe_sequence_base& __lhs,
++ __gnu_debug::_Safe_iterator_base*& __lhs_its,
++ __gnu_debug::_Safe_sequence_base& __rhs,
++ __gnu_debug::_Safe_iterator_base*& __rhs_its)
++ {
++ swap(__lhs_its, __rhs_its);
++ __gnu_debug::_Safe_iterator_base* __iter;
++ for (__iter = __rhs_its; __iter; __iter = __iter->_M_next)
++ __iter->_M_sequence = &__rhs;
++ for (__iter = __lhs_its; __iter; __iter = __iter->_M_next)
++ __iter->_M_sequence = &__lhs;
++ }
++
++ void
++ swap_seq(__gnu_debug::_Safe_sequence_base& __lhs,
++ __gnu_debug::_Safe_sequence_base& __rhs)
++ {
++ swap(__lhs._M_version, __rhs._M_version);
++ swap_its(__lhs, __lhs._M_iterators,
++ __rhs, __rhs._M_iterators);
++ swap_its(__lhs, __lhs._M_const_iterators,
++ __rhs, __rhs._M_const_iterators);
++ }
++
++ void
++ swap_ucont(__gnu_debug::_Safe_unordered_container_base& __lhs,
++ __gnu_debug::_Safe_unordered_container_base& __rhs)
++ {
++ swap_seq(__lhs, __rhs);
++ swap_its(__lhs, __lhs._M_local_iterators,
++ __rhs, __rhs._M_local_iterators);
++ swap_its(__lhs, __lhs._M_const_local_iterators,
++ __rhs, __rhs._M_const_local_iterators);
++ }
++
++ void
++ detach_all(__gnu_debug::_Safe_iterator_base* __iter)
++ {
++ for (; __iter;)
++ {
++ __gnu_debug::_Safe_iterator_base* __old = __iter;
++ __iter = __iter->_M_next;
++ __old->_M_reset();
++ }
++ }
++} // anonymous namespace
++
++namespace __gnu_debug
++{
++ void
++ _Safe_iterator_base::
++ _M_reset() throw ()
++ {
++ _M_sequence = 0;
++ _M_version = 0;
++ _M_prior = 0;
++ _M_next = 0;
++ }
++
++ _Safe_unordered_container_base*
++ _Safe_local_iterator_base::
++ _M_get_container() const _GLIBCXX_NOEXCEPT
++ { return static_cast<_Safe_unordered_container_base*>(_M_sequence); }
++
++ void
++ _Safe_local_iterator_base::
++ _M_attach(_Safe_sequence_base* __cont, bool __constant)
++ {
++ _M_detach();
++
++ // Attach to the new container (if there is one)
++ if (__cont)
++ {
++ _M_sequence = __cont;
++ _M_version = _M_sequence->_M_version;
++ _M_get_container()->_M_attach_local(this, __constant);
++ }
++ }
++
++ void
++ _Safe_local_iterator_base::
++ _M_detach()
++ {
++ if (_M_sequence)
++ _M_get_container()->_M_detach_local(this);
++
++ _M_reset();
++ }
++
++ void
++ _Safe_unordered_container_base::
++ _M_detach_all()
++ {
++ __gnu_cxx::__scoped_lock sentry(_M_get_mutex());
++ detach_all(_M_iterators);
++ _M_iterators = 0;
++
++ detach_all(_M_const_iterators);
++ _M_const_iterators = 0;
++
++ detach_all(_M_local_iterators);
++ _M_local_iterators = 0;
++
++ detach_all(_M_const_local_iterators);
++ _M_const_local_iterators = 0;
++ }
++
++ void
++ _Safe_unordered_container_base::
++ _M_swap(_Safe_unordered_container_base& __x)
++ {
++ // We need to lock both containers to swap
++ using namespace __gnu_cxx;
++ __mutex *__this_mutex = &_M_get_mutex();
++ __mutex *__x_mutex = &__x._M_get_mutex();
++ if (__this_mutex == __x_mutex)
++ {
++ __scoped_lock __lock(*__this_mutex);
++ swap_ucont(*this, __x);
++ }
++ else
++ {
++ __scoped_lock __l1(__this_mutex < __x_mutex
++ ? *__this_mutex : *__x_mutex);
++ __scoped_lock __l2(__this_mutex < __x_mutex
++ ? *__x_mutex : *__this_mutex);
++ swap_ucont(*this, __x);
++ }
++ }
++
++ void
++ _Safe_unordered_container_base::
++ _M_attach_local(_Safe_iterator_base* __it, bool __constant)
++ {
++ __gnu_cxx::__scoped_lock sentry(_M_get_mutex());
++ _M_attach_local_single(__it, __constant);
++ }
++
++ void
++ _Safe_unordered_container_base::
++ _M_attach_local_single(_Safe_iterator_base* __it, bool __constant) throw ()
++ {
++ _Safe_iterator_base*& __its =
++ __constant ? _M_const_local_iterators : _M_local_iterators;
++ __it->_M_next = __its;
++ if (__it->_M_next)
++ __it->_M_next->_M_prior = __it;
++ __its = __it;
++ }
++
++ void
++ _Safe_unordered_container_base::
++ _M_detach_local(_Safe_iterator_base* __it)
++ {
++ // Remove __it from this container's list
++ __gnu_cxx::__scoped_lock sentry(_M_get_mutex());
++ _M_detach_local_single(__it);
++ }
++
++ void
++ _Safe_unordered_container_base::
++ _M_detach_local_single(_Safe_iterator_base* __it) throw ()
++ {
++ // Remove __it from this container's list
++ __it->_M_unlink();
++ if (_M_const_local_iterators == __it)
++ _M_const_local_iterators = __it->_M_next;
++ if (_M_local_iterators == __it)
++ _M_local_iterators = __it->_M_next;
++ }
++
++} // namespace __gnu_debug
++
++asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD0Ev");
++asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD1Ev");
++asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD2Ev");
++asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD0Ev");
++asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD1Ev");
++asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD2Ev");
++asm (".hidden _ZN9__gnu_cxx30__throw_concurrence_lock_errorEv");
++asm (".hidden _ZN9__gnu_cxx32__throw_concurrence_unlock_errorEv");
++asm (".hidden _ZNK9__gnu_cxx24__concurrence_lock_error4whatEv");
++asm (".hidden _ZNK9__gnu_cxx26__concurrence_unlock_error4whatEv");
++asm (".hidden _ZTIN9__gnu_cxx24__concurrence_lock_errorE");
++asm (".hidden _ZTIN9__gnu_cxx26__concurrence_unlock_errorE");
++asm (".hidden _ZTSN9__gnu_cxx24__concurrence_lock_errorE");
++asm (".hidden _ZTSN9__gnu_cxx26__concurrence_unlock_errorE");
++asm (".hidden _ZTVN9__gnu_cxx24__concurrence_lock_errorE");
++asm (".hidden _ZTVN9__gnu_cxx26__concurrence_unlock_errorE");
++asm (".hidden _ZN11__gnu_debug19_Safe_iterator_base8_M_resetEv");
++asm (".hidden _ZN11__gnu_debug30_Safe_unordered_container_base15_M_attach_localEPNS_19_Safe_iterator_baseEb");
++asm (".hidden _ZN11__gnu_debug30_Safe_unordered_container_base15_M_detach_localEPNS_19_Safe_iterator_baseE");
++asm (".hidden _ZN11__gnu_debug30_Safe_unordered_container_base22_M_attach_local_singleEPNS_19_Safe_iterator_baseEb");
++asm (".hidden _ZN11__gnu_debug30_Safe_unordered_container_base22_M_detach_local_singleEPNS_19_Safe_iterator_baseE");
++asm (".hidden _ZNK11__gnu_debug25_Safe_local_iterator_base16_M_get_containerEv");
+--- libstdc++-v3/src/nonshared11/compatibility-thread-c++0x.cc.jj 2014-05-15 15:53:13.150790583 +0200
++++ libstdc++-v3/src/nonshared11/compatibility-thread-c++0x.cc 2014-05-15 15:53:13.150790583 +0200
+@@ -0,0 +1,40 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++#if defined(_GLIBCXX_HAVE_TLS) && defined(PIC)
++#define _GLIBCXX_ASYNC_ABI_COMPAT
++#endif
++
++#include
++#include
++
++#undef _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE
++#include "../c++11/compatibility-thread-c++0x.cc"
++
++asm (".hidden _ZSt9call_onceIMSt6threadFvvEISt17reference_wrapperIS0_EEEvRSt9once_flagOT_DpOT0_");
++asm (".hidden _ZSt9call_onceIMSt6threadFvvEJSt17reference_wrapperIS0_EEEvRSt9once_flagOT_DpOT0_");
++asm (".hidden _ZSt16__once_call_implISt12_Bind_simpleIFSt7_Mem_fnIMSt6threadFvvEESt17reference_wrapperIS2_EEEEvv");
++asm (".hidden _ZSt13__bind_simpleIMSt6threadFvvEISt17reference_wrapperIS0_EEENSt19_Bind_simple_helperIT_IDpT0_EE6__typeEOS6_DpOS7_");
++asm (".hidden _ZSt13__bind_simpleIMSt6threadFvvEJSt17reference_wrapperIS0_EEENSt19_Bind_simple_helperIT_JDpT0_EE6__typeEOS6_DpOS7_");
++asm (".hidden _ZNSt13__future_base19_Async_state_common15_M_run_deferredEv");
++asm (".hidden _ZNSt13__future_base7_ResultIvE10_M_destroyEv");
+--- libstdc++-v3/src/nonshared11/nested_exception.cc.jj 2014-05-15 15:53:13.150790583 +0200
++++ libstdc++-v3/src/nonshared11/nested_exception.cc 2014-05-15 15:53:13.150790583 +0200
+@@ -0,0 +1,24 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../libsupc++/nested_exception.cc"
++asm (".hidden _ZTSSt16nested_exception");
+--- libstdc++-v3/src/nonshared11/bad_array_new.cc.jj 2014-05-15 15:53:13.151790659 +0200
++++ libstdc++-v3/src/nonshared11/bad_array_new.cc 2014-05-15 15:53:13.151790659 +0200
+@@ -0,0 +1,23 @@
++// Copyright (C) 2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../libsupc++/bad_array_new.cc"
+--- libstdc++-v3/src/nonshared11/eh_aux_runtime.cc.jj 2014-05-15 15:53:13.151790659 +0200
++++ libstdc++-v3/src/nonshared11/eh_aux_runtime.cc 2014-05-15 15:53:13.151790659 +0200
+@@ -0,0 +1,38 @@
++// -*- C++ -*- Common throw conditions.
++// Copyright (C) 1994-2014 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.
++//
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++//
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "typeinfo"
++#include "exception"
++#include "new"
++#include
++#include "unwind-cxx.h"
++#include
++
++extern "C" void
++__cxxabiv1::__cxa_throw_bad_array_new_length ()
++{ _GLIBCXX_THROW_OR_ABORT(std::bad_array_new_length()); }
++
++extern "C" void
++__cxxabiv1::__cxa_throw_bad_array_length ()
++{ _GLIBCXX_THROW_OR_ABORT(std::bad_array_length()); }
+--- libstdc++-v3/src/nonshared11/limits.cc.jj 2014-05-15 15:53:13.151790659 +0200
++++ libstdc++-v3/src/nonshared11/limits.cc 2014-05-15 15:53:13.151790659 +0200
+@@ -0,0 +1,99 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++
++#define const _GLIBCXX_USE_CONSTEXPR
++
++ const int __numeric_limits_base::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++ const int numeric_limits::max_digits10;
++
++#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_INT128)
++ const bool numeric_limits<__int128>::is_specialized;
++ const int numeric_limits<__int128>::digits;
++ const int numeric_limits<__int128>::digits10;
++ const int numeric_limits<__int128>::max_digits10;
++ const bool numeric_limits<__int128>::is_signed;
++ const bool numeric_limits<__int128>::is_integer;
++ const bool numeric_limits<__int128>::is_exact;
++ const int numeric_limits<__int128>::radix;
++ const int numeric_limits<__int128>::min_exponent;
++ const int numeric_limits<__int128>::min_exponent10;
++ const int numeric_limits<__int128>::max_exponent;
++ const int numeric_limits<__int128>::max_exponent10;
++ const bool numeric_limits<__int128>::has_infinity;
++ const bool numeric_limits<__int128>::has_quiet_NaN;
++ const bool numeric_limits<__int128>::has_signaling_NaN;
++ const float_denorm_style numeric_limits<__int128>::has_denorm;
++ const bool numeric_limits<__int128>::has_denorm_loss;
++ const bool numeric_limits<__int128>::is_iec559;
++ const bool numeric_limits<__int128>::is_bounded;
++ const bool numeric_limits<__int128>::is_modulo;
++ const bool numeric_limits<__int128>::traps;
++ const bool numeric_limits<__int128>::tinyness_before;
++ const float_round_style numeric_limits<__int128>::round_style;
++
++ const bool numeric_limits::is_specialized;
++ const int numeric_limits::digits;
++ const int numeric_limits::digits10;
++ const int numeric_limits::max_digits10;
++ const bool numeric_limits::is_signed;
++ const bool numeric_limits::is_integer;
++ const bool numeric_limits::is_exact;
++ const int numeric_limits::radix;
++ const int numeric_limits::min_exponent;
++ const int numeric_limits::min_exponent10;
++ const int numeric_limits::max_exponent;
++ const int numeric_limits::max_exponent10;
++ const bool numeric_limits::has_infinity;
++ const bool numeric_limits::has_quiet_NaN;
++ const bool numeric_limits::has_signaling_NaN;
++ const float_denorm_style numeric_limits::has_denorm;
++ const bool numeric_limits::has_denorm_loss;
++ const bool numeric_limits::is_iec559;
++ const bool numeric_limits::is_bounded;
++ const bool numeric_limits::is_modulo;
++ const bool numeric_limits::traps;
++ const bool numeric_limits::tinyness_before;
++ const float_round_style numeric_limits::round_style;
++#endif
++}
+--- libstdc++-v3/src/nonshared11/functexcept48.cc.jj 2014-05-15 15:53:13.151790659 +0200
++++ libstdc++-v3/src/nonshared11/functexcept48.cc 2014-05-15 15:53:13.151790659 +0200
+@@ -0,0 +1,66 @@
++// Copyright (C) 2001-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++
++#ifdef _GLIBCXX_USE_NLS
++# include
++# define _(msgid) gettext (msgid)
++#else
++# define _(msgid) (msgid)
++#endif
++
++namespace __gnu_cxx
++{
++ int __snprintf_lite(char *__buf, size_t __bufsize, const char *__fmt,
++ va_list __ap);
++}
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++_GLIBCXX_BEGIN_NAMESPACE_VERSION
++
++ void
++ __throw_out_of_range_fmt(const char* __fmt, ...)
++ {
++ const size_t __len = __builtin_strlen(__fmt);
++ // We expect at most 2 numbers, and 1 short string. The additional
++ // 512 bytes should provide more than enough space for expansion.
++ const size_t __alloca_size = __len + 512;
++ char *const __s = static_cast(__builtin_alloca(__alloca_size));
++ va_list __ap;
++
++ va_start(__ap, __fmt);
++ __gnu_cxx::__snprintf_lite(__s, __alloca_size, __fmt, __ap);
++ _GLIBCXX_THROW_OR_ABORT(out_of_range(_(__s)));
++ va_end(__ap); // Not reached.
++ }
++
++_GLIBCXX_END_NAMESPACE_VERSION
++} // namespace
+--- libstdc++-v3/src/nonshared11/Makefile.in.jj 2014-05-15 15:53:13.151790659 +0200
++++ libstdc++-v3/src/nonshared11/Makefile.in 2014-05-15 16:13:18.866387096 +0200
+@@ -0,0 +1,663 @@
++# Makefile.in generated by automake 1.11.1 from Makefile.am.
++# @configure_input@
++
++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
++# Inc.
++# This Makefile.in is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
++# PARTICULAR PURPOSE.
++
++@SET_MAKE@
++
++VPATH = @srcdir@
++pkgdatadir = $(datadir)/@PACKAGE@
++pkgincludedir = $(includedir)/@PACKAGE@
++pkglibdir = $(libdir)/@PACKAGE@
++pkglibexecdir = $(libexecdir)/@PACKAGE@
++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
++install_sh_DATA = $(install_sh) -c -m 644
++install_sh_PROGRAM = $(install_sh) -c
++install_sh_SCRIPT = $(install_sh) -c
++INSTALL_HEADER = $(INSTALL_DATA)
++transform = $(program_transform_name)
++NORMAL_INSTALL = :
++PRE_INSTALL = :
++POST_INSTALL = :
++NORMAL_UNINSTALL = :
++PRE_UNINSTALL = :
++POST_UNINSTALL = :
++build_triplet = @build@
++host_triplet = @host@
++target_triplet = @target@
++DIST_COMMON = $(top_srcdir)/fragment.am $(srcdir)/Makefile.in \
++ $(srcdir)/Makefile.am
++subdir = src/nonshared11
++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
++am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
++ $(top_srcdir)/../config/enable.m4 \
++ $(top_srcdir)/../config/futex.m4 \
++ $(top_srcdir)/../config/iconv.m4 \
++ $(top_srcdir)/../config/lead-dot.m4 \
++ $(top_srcdir)/../config/lib-ld.m4 \
++ $(top_srcdir)/../config/lib-link.m4 \
++ $(top_srcdir)/../config/lib-prefix.m4 \
++ $(top_srcdir)/../config/lthostflags.m4 \
++ $(top_srcdir)/../config/multi.m4 \
++ $(top_srcdir)/../config/no-executables.m4 \
++ $(top_srcdir)/../config/override.m4 \
++ $(top_srcdir)/../config/stdint.m4 \
++ $(top_srcdir)/../config/unwind_ipinfo.m4 \
++ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
++ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
++ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \
++ $(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
++ $(top_srcdir)/../config/gc++filt.m4 \
++ $(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
++ $(top_srcdir)/configure.ac
++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
++ $(ACLOCAL_M4)
++CONFIG_HEADER = $(top_builddir)/config.h
++CONFIG_CLEAN_FILES =
++CONFIG_CLEAN_VPATH_FILES =
++LTLIBRARIES = $(noinst_LTLIBRARIES)
++libnonshared11convenience44_la_LIBADD =
++am__objects_1 = bad_array_length.lo bad_array_new.lo eh_aux_runtime.lo \
++ eh_terminate.lo new_handler.lo snprintf_lite.lo
++@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_2 = string-inst.lo \
++@ENABLE_EXTERN_TEMPLATE_TRUE@ wstring-inst.lo fstream-inst.lo
++am__objects_3 = limits.lo future.lo functexcept.lo placeholders.lo \
++ regex.lo functional.lo shared_ptr.lo nested_exception.lo \
++ debug.lo compatibility-thread-c++0x.lo atexit_thread.lo \
++ random.lo chrono.lo compatibility-atomic-c++0x.lo \
++ hashtable_c++0x.lo system_error.lo thread.lo $(am__objects_2)
++am_libnonshared11convenience44_la_OBJECTS = $(am__objects_1) \
++ $(am__objects_3)
++libnonshared11convenience44_la_OBJECTS = \
++ $(am_libnonshared11convenience44_la_OBJECTS)
++libnonshared11convenience48_la_LIBADD =
++am__objects_4 = regex48.lo functexcept48.lo
++am_libnonshared11convenience48_la_OBJECTS = $(am__objects_1) \
++ $(am__objects_4)
++libnonshared11convenience48_la_OBJECTS = \
++ $(am_libnonshared11convenience48_la_OBJECTS)
++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
++depcomp =
++am__depfiles_maybe =
++CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
++CXXLD = $(CXX)
++SOURCES = $(libnonshared11convenience44_la_SOURCES) \
++ $(libnonshared11convenience48_la_SOURCES)
++ETAGS = etags
++CTAGS = ctags
++ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@
++ACLOCAL = @ACLOCAL@
++ALLOCATOR_H = @ALLOCATOR_H@
++ALLOCATOR_NAME = @ALLOCATOR_NAME@
++AMTAR = @AMTAR@
++AR = @AR@
++AS = @AS@
++ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@
++ATOMIC_FLAGS = @ATOMIC_FLAGS@
++ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@
++AUTOCONF = @AUTOCONF@
++AUTOHEADER = @AUTOHEADER@
++AUTOMAKE = @AUTOMAKE@
++AWK = @AWK@
++BASIC_FILE_CC = @BASIC_FILE_CC@
++BASIC_FILE_H = @BASIC_FILE_H@
++CC = @CC@
++CCAS = @CCAS@
++CCASFLAGS = @CCASFLAGS@
++CCODECVT_CC = @CCODECVT_CC@
++CCOLLATE_CC = @CCOLLATE_CC@
++CCTYPE_CC = @CCTYPE_CC@
++CFLAGS = @CFLAGS@
++CLOCALE_CC = @CLOCALE_CC@
++CLOCALE_H = @CLOCALE_H@
++CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
++CMESSAGES_CC = @CMESSAGES_CC@
++CMESSAGES_H = @CMESSAGES_H@
++CMONEY_CC = @CMONEY_CC@
++CNUMERIC_CC = @CNUMERIC_CC@
++CPP = @CPP@
++CPPFLAGS = @CPPFLAGS@
++CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
++CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@
++CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
++CSTDIO_H = @CSTDIO_H@
++CTIME_CC = @CTIME_CC@
++CTIME_H = @CTIME_H@
++CXX = @CXX@
++CXXCPP = @CXXCPP@
++CXXFILT = @CXXFILT@
++CXXFLAGS = @CXXFLAGS@
++CYGPATH_W = @CYGPATH_W@
++C_INCLUDE_DIR = @C_INCLUDE_DIR@
++DBLATEX = @DBLATEX@
++DEBUG_FLAGS = @DEBUG_FLAGS@
++DEFS = @DEFS@
++DOT = @DOT@
++DOXYGEN = @DOXYGEN@
++DSYMUTIL = @DSYMUTIL@
++DUMPBIN = @DUMPBIN@
++ECHO_C = @ECHO_C@
++ECHO_N = @ECHO_N@
++ECHO_T = @ECHO_T@
++EGREP = @EGREP@
++ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
++EXEEXT = @EXEEXT@
++EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
++FGREP = @FGREP@
++GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
++GLIBCXX_LIBS = @GLIBCXX_LIBS@
++GREP = @GREP@
++HWCAP_FLAGS = @HWCAP_FLAGS@
++INSTALL = @INSTALL@
++INSTALL_DATA = @INSTALL_DATA@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_SCRIPT = @INSTALL_SCRIPT@
++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
++LD = @LD@
++LDFLAGS = @LDFLAGS@
++LIBICONV = @LIBICONV@
++LIBOBJS = @LIBOBJS@
++LIBS = @LIBS@
++LIBTOOL = @LIBTOOL@
++LIPO = @LIPO@
++LN_S = @LN_S@
++LTLIBICONV = @LTLIBICONV@
++LTLIBOBJS = @LTLIBOBJS@
++MAINT = @MAINT@
++MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
++NM = @NM@
++NMEDIT = @NMEDIT@
++OBJDUMP = @OBJDUMP@
++OBJEXT = @OBJEXT@
++OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
++OPT_LDFLAGS = @OPT_LDFLAGS@
++OS_INC_SRCDIR = @OS_INC_SRCDIR@
++OTOOL = @OTOOL@
++OTOOL64 = @OTOOL64@
++PACKAGE = @PACKAGE@
++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
++PACKAGE_NAME = @PACKAGE_NAME@
++PACKAGE_STRING = @PACKAGE_STRING@
++PACKAGE_TARNAME = @PACKAGE_TARNAME@
++PACKAGE_URL = @PACKAGE_URL@
++PACKAGE_VERSION = @PACKAGE_VERSION@
++PATH_SEPARATOR = @PATH_SEPARATOR@
++PDFLATEX = @PDFLATEX@
++RANLIB = @RANLIB@
++SECTION_FLAGS = @SECTION_FLAGS@
++SECTION_LDFLAGS = @SECTION_LDFLAGS@
++SED = @SED@
++SET_MAKE = @SET_MAKE@
++SHELL = @SHELL@
++STRIP = @STRIP@
++SYMVER_FILE = @SYMVER_FILE@
++TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
++USE_NLS = @USE_NLS@
++VERSION = @VERSION@
++VTV_CXXFLAGS = @VTV_CXXFLAGS@
++VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
++VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
++WARN_FLAGS = @WARN_FLAGS@
++WERROR = @WERROR@
++XMLLINT = @XMLLINT@
++XSLTPROC = @XSLTPROC@
++XSL_STYLE_DIR = @XSL_STYLE_DIR@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
++ac_ct_CC = @ac_ct_CC@
++ac_ct_CXX = @ac_ct_CXX@
++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
++am__leading_dot = @am__leading_dot@
++am__tar = @am__tar@
++am__untar = @am__untar@
++baseline_dir = @baseline_dir@
++baseline_subdir_switch = @baseline_subdir_switch@
++bindir = @bindir@
++build = @build@
++build_alias = @build_alias@
++build_cpu = @build_cpu@
++build_os = @build_os@
++build_vendor = @build_vendor@
++builddir = @builddir@
++check_msgfmt = @check_msgfmt@
++datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
++enable_shared = @enable_shared@
++enable_static = @enable_static@
++exec_prefix = @exec_prefix@
++glibcxx_MOFILES = @glibcxx_MOFILES@
++glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
++glibcxx_POFILES = @glibcxx_POFILES@
++glibcxx_builddir = @glibcxx_builddir@
++glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
++glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
++glibcxx_localedir = @glibcxx_localedir@
++glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
++glibcxx_prefixdir = @glibcxx_prefixdir@
++glibcxx_srcdir = @glibcxx_srcdir@
++glibcxx_toolexecdir = @glibcxx_toolexecdir@
++glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@
++gxx_include_dir = @gxx_include_dir@
++host = @host@
++host_alias = @host_alias@
++host_cpu = @host_cpu@
++host_os = @host_os@
++host_vendor = @host_vendor@
++htmldir = @htmldir@
++includedir = @includedir@
++infodir = @infodir@
++install_sh = @install_sh@
++libdir = @libdir@
++libexecdir = @libexecdir@
++libtool_VERSION = @libtool_VERSION@
++localedir = @localedir@
++localstatedir = @localstatedir@
++lt_host_flags = @lt_host_flags@
++mandir = @mandir@
++mkdir_p = @mkdir_p@
++multi_basedir = @multi_basedir@
++oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
++port_specific_symbol_files = @port_specific_symbol_files@
++prefix = @prefix@
++program_transform_name = @program_transform_name@
++psdir = @psdir@
++python_mod_dir = @python_mod_dir@
++sbindir = @sbindir@
++sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
++sysconfdir = @sysconfdir@
++target = @target@
++target_alias = @target_alias@
++target_cpu = @target_cpu@
++target_os = @target_os@
++target_vendor = @target_vendor@
++thread_header = @thread_header@
++top_build_prefix = @top_build_prefix@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
++toplevel_builddir = @toplevel_builddir@
++toplevel_srcdir = @toplevel_srcdir@
++
++# May be used by various substitution variables.
++gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
++MAINT_CHARSET = latin1
++mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
++PWD_COMMAND = $${PWDCMD-pwd}
++STAMP = echo timestamp >
++toolexecdir = $(glibcxx_toolexecdir)
++toolexeclibdir = $(glibcxx_toolexeclibdir)
++@ENABLE_WERROR_FALSE@WERROR_FLAG =
++@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
++@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS =
++@ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates
++
++# These bits are all figured out from configure. Look in acinclude.m4
++# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
++CONFIG_CXXFLAGS = \
++ $(SECTION_FLAGS) $(HWCAP_FLAGS) -frandom-seed=$@
++
++WARN_CXXFLAGS = \
++ $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
++
++
++# -I/-D flags to pass when compiling.
++AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
++
++# Convenience library for C++11 runtime.
++noinst_LTLIBRARIES = libnonshared11convenience44.la \
++ libnonshared11convenience48.la
++
++headers =
++sources = \
++ bad_array_length.cc \
++ bad_array_new.cc \
++ eh_aux_runtime.cc \
++ eh_terminate.cc \
++ new_handler.cc \
++ snprintf_lite.cc
++
++sources44 = \
++ limits.cc \
++ future.cc \
++ functexcept.cc \
++ placeholders.cc \
++ regex.cc \
++ functional.cc \
++ shared_ptr.cc \
++ nested_exception.cc \
++ debug.cc \
++ compatibility-thread-c++0x.cc \
++ atexit_thread.cc \
++ random.cc \
++ chrono.cc \
++ compatibility-atomic-c++0x.cc \
++ hashtable_c++0x.cc \
++ system_error.cc \
++ thread.cc \
++ $(inst_sources44)
++
++sources48 = \
++ regex48.cc \
++ functexcept48.cc
++
++# XTEMPLATE_FLAGS =
++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources44 =
++
++# XTEMPLATE_FLAGS = -fno-implicit-templates
++@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources44 = \
++@ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst.cc \
++@ENABLE_EXTERN_TEMPLATE_TRUE@ wstring-inst.cc \
++@ENABLE_EXTERN_TEMPLATE_TRUE@ fstream-inst.cc
++
++libnonshared11convenience44_la_SOURCES = $(sources) $(sources44)
++libnonshared11convenience48_la_SOURCES = $(sources) $(sources48)
++
++# AM_CXXFLAGS needs to be in each subdirectory so that it can be
++# modified in a per-library or per-sub-library way. Need to manually
++# set this option because CONFIG_CXXFLAGS has to be after
++# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
++# as the occasion calls for it.
++AM_CXXFLAGS = \
++ -std=gnu++11 \
++ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
++ $(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \
++ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
++
++AM_MAKEFLAGS = \
++ "gxx_include_dir=$(gxx_include_dir)"
++
++
++# Libtool notes
++
++# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
++# last. (That way, things like -O2 passed down from the toplevel can
++# be overridden by --enable-debug.)
++
++# 2) In general, libtool expects an argument such as `--tag=CXX' when
++# using the C++ compiler, because that will enable the settings
++# detected when C++ support was being configured. However, when no
++# such flag is given in the command line, libtool attempts to figure
++# it out by matching the compiler name in each configuration section
++# against a prefix of the command line. The problem is that, if the
++# compiler name and its initial flags stored in the libtool
++# configuration file don't match those in the command line, libtool
++# can't decide which configuration to use, and it gives up. The
++# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
++# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
++# attempt to infer which configuration to use.
++# We have to put --tag disable-shared after --tag CXX lest things
++# CXX undo the affect of disable-shared.
++LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
++ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(EXTRA_CXX_FLAGS)
++
++LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
++
++# 3) We'd have a problem when building the shared libstdc++ object if
++# the rules automake generates would be used. We cannot allow g++ to
++# be used since this would add -lstdc++ to the link line which of
++# course is problematic at this point. So, we get the top-level
++# directory to configure libstdc++-v3 to use gcc as the C++
++# compilation driver.
++CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
++ --mode=link $(CXX) \
++ $(VTV_CXXLINKFLAGS) \
++ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
++
++all: all-am
++
++.SUFFIXES:
++.SUFFIXES: .cc .lo .o .obj
++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/fragment.am $(am__configure_deps)
++ @for dep in $?; do \
++ case '$(am__configure_deps)' in \
++ *$$dep*) \
++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
++ && { if test -f $@; then exit 0; else break; fi; }; \
++ exit 1;; \
++ esac; \
++ done; \
++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps src/nonshared11/Makefile'; \
++ $(am__cd) $(top_srcdir) && \
++ $(AUTOMAKE) --foreign --ignore-deps src/nonshared11/Makefile
++.PRECIOUS: Makefile
++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
++ @case '$?' in \
++ *config.status*) \
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
++ *) \
++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
++ esac;
++
++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++
++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++$(am__aclocal_m4_deps):
++
++clean-noinstLTLIBRARIES:
++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
++ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
++ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
++ test "$$dir" != "$$p" || dir=.; \
++ echo "rm -f \"$${dir}/so_locations\""; \
++ rm -f "$${dir}/so_locations"; \
++ done
++libnonshared11convenience44.la: $(libnonshared11convenience44_la_OBJECTS) $(libnonshared11convenience44_la_DEPENDENCIES)
++ $(CXXLINK) $(libnonshared11convenience44_la_OBJECTS) $(libnonshared11convenience44_la_LIBADD) $(LIBS)
++libnonshared11convenience48.la: $(libnonshared11convenience48_la_OBJECTS) $(libnonshared11convenience48_la_DEPENDENCIES)
++ $(CXXLINK) $(libnonshared11convenience48_la_OBJECTS) $(libnonshared11convenience48_la_LIBADD) $(LIBS)
++
++mostlyclean-compile:
++ -rm -f *.$(OBJEXT)
++
++distclean-compile:
++ -rm -f *.tab.c
++
++.cc.o:
++ $(CXXCOMPILE) -c -o $@ $<
++
++.cc.obj:
++ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
++
++.cc.lo:
++ $(LTCXXCOMPILE) -c -o $@ $<
++
++mostlyclean-libtool:
++ -rm -f *.lo
++
++clean-libtool:
++ -rm -rf .libs _libs
++
++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
++ mkid -fID $$unique
++tags: TAGS
++
++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
++ $(TAGS_FILES) $(LISP)
++ set x; \
++ here=`pwd`; \
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
++ shift; \
++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
++ test -n "$$unique" || unique=$$empty_fix; \
++ if test $$# -gt 0; then \
++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
++ "$$@" $$unique; \
++ else \
++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
++ $$unique; \
++ fi; \
++ fi
++ctags: CTAGS
++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
++ $(TAGS_FILES) $(LISP)
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
++ test -z "$(CTAGS_ARGS)$$unique" \
++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
++ $$unique
++
++GTAGS:
++ here=`$(am__cd) $(top_builddir) && pwd` \
++ && $(am__cd) $(top_srcdir) \
++ && gtags -i $(GTAGS_ARGS) "$$here"
++
++distclean-tags:
++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
++check-am: all-am
++check: check-am
++all-am: Makefile $(LTLIBRARIES)
++installdirs:
++install: install-am
++install-exec: install-exec-am
++install-data: install-data-am
++uninstall: uninstall-am
++
++install-am: all-am
++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
++
++installcheck: installcheck-am
++install-strip:
++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
++ `test -z '$(STRIP)' || \
++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
++mostlyclean-generic:
++
++clean-generic:
++
++distclean-generic:
++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
++
++maintainer-clean-generic:
++ @echo "This command is intended for maintainers to use"
++ @echo "it deletes files that may require special tools to rebuild."
++clean: clean-am
++
++clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
++ mostlyclean-am
++
++distclean: distclean-am
++ -rm -f Makefile
++distclean-am: clean-am distclean-compile distclean-generic \
++ distclean-tags
++
++dvi: dvi-am
++
++dvi-am:
++
++html: html-am
++
++html-am:
++
++info: info-am
++
++info-am:
++
++install-data-am:
++
++install-dvi: install-dvi-am
++
++install-dvi-am:
++
++install-exec-am:
++
++install-html: install-html-am
++
++install-html-am:
++
++install-info: install-info-am
++
++install-info-am:
++
++install-man:
++
++install-pdf: install-pdf-am
++
++install-pdf-am:
++
++install-ps: install-ps-am
++
++install-ps-am:
++
++installcheck-am:
++
++maintainer-clean: maintainer-clean-am
++ -rm -f Makefile
++maintainer-clean-am: distclean-am maintainer-clean-generic
++
++mostlyclean: mostlyclean-am
++
++mostlyclean-am: mostlyclean-compile mostlyclean-generic \
++ mostlyclean-libtool
++
++pdf: pdf-am
++
++pdf-am:
++
++ps: ps-am
++
++ps-am:
++
++uninstall-am:
++
++.MAKE: install-am install-strip
++
++.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
++ clean-libtool clean-noinstLTLIBRARIES ctags distclean \
++ distclean-compile distclean-generic distclean-libtool \
++ distclean-tags dvi dvi-am html html-am info info-am install \
++ install-am install-data install-data-am install-dvi \
++ install-dvi-am install-exec install-exec-am install-html \
++ install-html-am install-info install-info-am install-man \
++ install-pdf install-pdf-am install-ps install-ps-am \
++ install-strip installcheck installcheck-am installdirs \
++ maintainer-clean maintainer-clean-generic mostlyclean \
++ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
++ pdf pdf-am ps ps-am tags uninstall uninstall-am
++
++
++vpath % $(top_srcdir)/src/nonshared11
++vpath % $(top_srcdir)
++
++# Tell versions [3.59,3.63) of GNU make to not export all variables.
++# Otherwise a system limit (for SysV at least) may be exceeded.
++.NOEXPORT:
+--- libstdc++-v3/src/nonshared11/wstring-inst.cc.jj 2014-05-15 15:53:13.152790734 +0200
++++ libstdc++-v3/src/nonshared11/wstring-inst.cc 2014-05-15 15:53:13.152790734 +0200
+@@ -0,0 +1,34 @@
++// wide string support -*- C++ -*-
++
++// Copyright (C) 1999-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++//
++// ISO C++ 14882: 21 Strings library
++//
++
++#include
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++#define C wchar_t
++#include "string-inst.cc"
++#endif
+--- libstdc++-v3/src/nonshared11/random.cc.jj 2014-05-15 15:53:13.152790734 +0200
++++ libstdc++-v3/src/nonshared11/random.cc 2014-05-15 15:53:13.152790734 +0200
+@@ -0,0 +1,71 @@
++// Copyright (C) 2013-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../c++11/random.cc"
++
++#if __WORDSIZE == 64
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE10shift_sizeE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE10state_sizeE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11tempering_bE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11tempering_cE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11tempering_dE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11tempering_lE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11tempering_sE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11tempering_tE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11tempering_uE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE12default_seedE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE25initialization_multiplierE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE3maxEv");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE3minEv");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE4seedEm");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE7discardEy");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE8xor_maskE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE9mask_bitsE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE9word_sizeE");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEC1Em");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEC2Em");
++asm (".hidden _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv");
++#else
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE10shift_sizeE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE10state_sizeE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE11_M_gen_randEv");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE11tempering_bE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE11tempering_cE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE11tempering_dE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE11tempering_lE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE11tempering_sE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE11tempering_tE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE11tempering_uE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE12default_seedE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE25initialization_multiplierE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE3maxEv");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE3minEv");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE4seedEj");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE7discardEy");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE8xor_maskE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE9mask_bitsE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EE9word_sizeE");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EEC1Ej");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EEC2Ej");
++asm (".hidden _ZNSt23mersenne_twister_engineIjLj32ELj624ELj397ELj31ELj2567483615ELj11ELj4294967295ELj7ELj2636928640ELj15ELj4022730752ELj18ELj1812433253EEclEv");
++#endif
+--- libstdc++-v3/src/nonshared11/string-inst.cc.jj 2014-05-15 15:53:13.152790734 +0200
++++ libstdc++-v3/src/nonshared11/string-inst.cc 2014-05-15 15:53:13.152790734 +0200
+@@ -0,0 +1,98 @@
++// Components for manipulating sequences of characters -*- C++ -*-
++
++// Copyright (C) 1997-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++//
++// ISO C++ 14882: 21 Strings library
++//
++
++// Written by Jason Merrill based upon the specification by Takanori Adachi
++// in ANSI X3J16/94-0013R2. Rewritten by Nathan Myers.
++
++#include
++
++// Instantiation configuration.
++#ifndef C
++# define C char
++# define NARROW
++#endif
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++
++ typedef basic_string S;
++
++ template
++ S::const_iterator S::cbegin() const;
++
++ template
++ S::const_iterator S::cend() const;
++
++ template
++ S::const_reverse_iterator S::crbegin() const;
++
++ template
++ S::const_reverse_iterator S::crend() const;
++
++ template
++ S::basic_string(S&&);
++
++ template
++ S& S::operator=(S&&);
++
++ template
++ S& S::assign(S&&);
++
++ template
++ C *S::_S_construct_aux_2(size_type, C, const allocator_type&);
++
++ template
++ void S::shrink_to_fit();
++
++ template
++ C *S::_S_construct(iterator, iterator, const allocator_type&, forward_iterator_tag);
++
++ template
++ C *S::_S_construct(C *, C *, const allocator_type&, forward_iterator_tag);
++
++ template
++ C *S::_S_construct(const C *, const C *, const allocator_type&, forward_iterator_tag);
++
++ template
++ S::reference S::front();
++
++ template
++ S::const_reference S::front() const;
++
++ template
++ S::reference S::back();
++
++ template
++ S::const_reference S::back() const;
++
++ template
++ int S::_S_compare(size_type, size_type);
++
++ template
++ void S::pop_back();
++}
+--- libstdc++-v3/src/nonshared11/shared_ptr.cc.jj 2014-05-15 15:53:13.152790734 +0200
++++ libstdc++-v3/src/nonshared11/shared_ptr.cc 2014-05-15 15:53:13.152790734 +0200
+@@ -0,0 +1,24 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../c++11/shared_ptr.cc"
++asm (".hidden _ZTSSt12bad_weak_ptr");
+--- libstdc++-v3/src/nonshared11/system_error.cc.jj 2014-05-15 15:53:13.152790734 +0200
++++ libstdc++-v3/src/nonshared11/system_error.cc 2014-05-15 15:53:13.152790734 +0200
+@@ -0,0 +1,50 @@
++// implementation file
++
++// Copyright (C) 2007-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++_GLIBCXX_BEGIN_NAMESPACE_VERSION
++
++ // Lie, to avoid emitting vtable/rtti here.
++ struct error_category
++ {
++ virtual const char*
++ name() const;
++
++ error_category();
++
++ virtual ~error_category();
++
++ error_category(const error_category&) = delete;
++ error_category& operator=(const error_category&) = delete;
++ };
++
++ error_category::error_category() = default;
++
++ error_category::~error_category() = default;
++
++_GLIBCXX_END_NAMESPACE_VERSION
++} // namespace
+--- libstdc++-v3/src/nonshared11/placeholders.cc.jj 2014-05-15 15:53:13.152790734 +0200
++++ libstdc++-v3/src/nonshared11/placeholders.cc 2014-05-15 15:53:13.152790734 +0200
+@@ -0,0 +1,23 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../c++11/placeholders.cc"
+--- libstdc++-v3/src/nonshared11/regex48.cc.jj 2014-05-15 15:53:13.153790805 +0200
++++ libstdc++-v3/src/nonshared11/regex48.cc 2014-05-15 15:53:13.153790805 +0200
+@@ -0,0 +1,31 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../c++11/regex.cc"
++
++asm (".hidden _ZNSt11regex_errorC2ENSt15regex_constants10error_typeE");
++asm (".hidden _ZNSt11regex_errorD0Ev");
++asm (".hidden _ZNSt11regex_errorD1Ev");
++asm (".hidden _ZNSt11regex_errorD2Ev");
++asm (".hidden _ZTSSt11regex_error");
++asm (".hidden _ZTISt11regex_error");
++asm (".hidden _ZTVSt11regex_error");
+--- libstdc++-v3/src/nonshared11/compatibility-atomic-c++0x.cc.jj 2014-05-15 15:53:13.153790805 +0200
++++ libstdc++-v3/src/nonshared11/compatibility-atomic-c++0x.cc 2014-05-15 15:53:13.153790805 +0200
+@@ -0,0 +1,42 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++
++extern "C"
++{
++ extern bool _ZNVSt9__atomic011atomic_flag5clearESt12memory_order (std::memory_order);
++
++ bool
++ _ZNSt9__atomic011atomic_flag5clearESt12memory_order (std::memory_order m)
++ {
++ return _ZNVSt9__atomic011atomic_flag5clearESt12memory_order (m);
++ }
++
++ extern void _ZNVSt9__atomic011atomic_flag12test_and_setESt12memory_order (std::memory_order);
++
++ void
++ _ZNSt9__atomic011atomic_flag12test_and_setESt12memory_order (std::memory_order m)
++ {
++ _ZNVSt9__atomic011atomic_flag12test_and_setESt12memory_order (m);
++ }
++}
+--- libstdc++-v3/src/nonshared11/regex.cc.jj 2014-05-15 15:53:13.153790805 +0200
++++ libstdc++-v3/src/nonshared11/regex.cc 2014-05-15 15:53:13.153790805 +0200
+@@ -0,0 +1,26 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../c++11/regex.cc"
++
++asm (".hidden _ZNSt11regex_errorC2ENSt15regex_constants10error_typeE");
++asm (".hidden _ZTSSt11regex_error");
+--- libstdc++-v3/src/nonshared11/hashtable_c++0x.cc.jj 2014-05-15 15:53:13.153790805 +0200
++++ libstdc++-v3/src/nonshared11/hashtable_c++0x.cc 2014-05-15 15:53:13.153790805 +0200
+@@ -0,0 +1,40 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++#include
++#include
++#include
++#include
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++namespace __detail
++{
++_GLIBCXX_BEGIN_NAMESPACE_VERSION
++ extern const unsigned long __prime_list[];
++_GLIBCXX_END_NAMESPACE_VERSION
++} // namespace __detail
++} // namespace std
++
++#define HASHTABLE_AUX_CC 1
++#include "../c++11/hashtable_c++0x.cc"
+--- libstdc++-v3/src/nonshared11/thread.cc.jj 2014-05-15 15:53:13.153790805 +0200
++++ libstdc++-v3/src/nonshared11/thread.cc 2014-05-15 15:53:13.153790805 +0200
+@@ -0,0 +1,122 @@
++// thread -*- C++ -*-
++
++// Copyright (C) 2008-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++
++#include
++#include
++#include
++#include
++
++#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
++
++#if defined(_GLIBCXX_USE_GET_NPROCS)
++# include
++# define _GLIBCXX_NPROCS get_nprocs()
++#elif defined(_GLIBCXX_USE_PTHREADS_NUM_PROCESSORS_NP)
++# define _GLIBCXX_NPROCS pthread_num_processors_np()
++#elif defined(_GLIBCXX_USE_SYSCTL_HW_NCPU)
++# include
++# include
++static inline int get_nprocs()
++{
++ int count;
++ size_t size = sizeof(count);
++ int mib[] = { CTL_HW, HW_NCPU };
++ if (!sysctl(mib, 2, &count, &size, NULL, 0))
++ return count;
++ return 0;
++}
++# define _GLIBCXX_NPROCS get_nprocs()
++#elif defined(_GLIBCXX_USE_SC_NPROCESSORS_ONLN)
++# include
++# define _GLIBCXX_NPROCS sysconf(_SC_NPROCESSORS_ONLN)
++#elif defined(_GLIBCXX_USE_SC_NPROC_ONLN)
++# include
++# define _GLIBCXX_NPROCS sysconf(_SC_NPROC_ONLN)
++#else
++# define _GLIBCXX_NPROCS 0
++#endif
++
++#ifndef _GLIBCXX_USE_NANOSLEEP
++# ifdef _GLIBCXX_HAVE_SLEEP
++# include
++# elif defined(_GLIBCXX_HAVE_WIN32_SLEEP)
++# include
++# else
++# error "No sleep function known for this target"
++# endif
++#endif
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++ unsigned int
++ thread::hardware_concurrency() noexcept
++ {
++ int __n = _GLIBCXX_NPROCS;
++ if (__n < 0)
++ __n = 0;
++ return __n;
++ }
++
++namespace this_thread
++{
++_GLIBCXX_BEGIN_NAMESPACE_VERSION
++
++ void
++ __sleep_for(chrono::seconds __s, chrono::nanoseconds __ns)
++ {
++#ifdef _GLIBCXX_USE_NANOSLEEP
++ __gthread_time_t __ts =
++ {
++ static_cast(__s.count()),
++ static_cast(__ns.count())
++ };
++ ::nanosleep(&__ts, 0);
++#elif defined(_GLIBCXX_HAVE_SLEEP)
++# ifdef _GLIBCXX_HAVE_USLEEP
++ ::sleep(__s.count());
++ if (__ns.count() > 0)
++ {
++ long __us = __ns.count() / 1000;
++ if (__us == 0)
++ __us = 1;
++ ::usleep(__us);
++ }
++# else
++ ::sleep(__s.count() + (__ns >= 1000000));
++# endif
++#elif defined(_GLIBCXX_HAVE_WIN32_SLEEP)
++ unsigned long ms = __ns.count() / 1000000;
++ if (__ns.count() > 0 && ms == 0)
++ ms = 1;
++ ::Sleep(chrono::milliseconds(__s).count() + ms);
++#endif
++ }
++
++_GLIBCXX_END_NAMESPACE_VERSION
++}
++
++} // namespace std
++
++#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
+--- libstdc++-v3/src/nonshared11/bad_array_length.cc.jj 2014-05-15 15:53:13.153790805 +0200
++++ libstdc++-v3/src/nonshared11/bad_array_length.cc 2014-05-15 15:53:13.153790805 +0200
+@@ -0,0 +1,23 @@
++// Copyright (C) 2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../libsupc++/bad_array_length.cc"
+--- libstdc++-v3/src/nonshared98/hash_bytes.cc.jj 2014-05-15 15:53:13.154790876 +0200
++++ libstdc++-v3/src/nonshared98/hash_bytes.cc 2014-05-15 15:53:13.153790805 +0200
+@@ -0,0 +1,23 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../libsupc++/hash_bytes.cc"
+--- libstdc++-v3/src/nonshared98/eh_alloc.cc.jj 2014-05-15 15:53:13.154790876 +0200
++++ libstdc++-v3/src/nonshared98/eh_alloc.cc 2014-05-15 15:53:13.154790876 +0200
+@@ -0,0 +1,170 @@
++// -*- C++ -*- Allocate exception objects.
++// Copyright (C) 2001-2014 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.
++//
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++// This is derived from the C++ ABI for IA-64. Where we diverge
++// for cross-architecture compatibility are noted with "@@@".
++
++#include
++#include
++#if _GLIBCXX_HOSTED
++#include
++#endif
++#include
++#include
++#include "unwind-cxx.h"
++#include
++
++#if _GLIBCXX_HOSTED
++using std::free;
++using std::malloc;
++using std::memset;
++#else
++// In a freestanding environment, these functions may not be available
++// -- but for now, we assume that they are.
++extern "C" void *malloc (std::size_t);
++extern "C" void free(void *);
++extern "C" void *memset (void *, int, std::size_t);
++#endif
++
++using namespace __cxxabiv1;
++
++// ??? How to control these parameters.
++
++// Guess from the size of basic types how large a buffer is reasonable.
++// Note that the basic c++ exception header has 13 pointers and 2 ints,
++// so on a system with PSImode pointers we're talking about 56 bytes
++// just for overhead.
++
++#if INT_MAX == 32767
++# define EMERGENCY_OBJ_SIZE 128
++# define EMERGENCY_OBJ_COUNT 16
++#elif LONG_MAX == 2147483647
++# define EMERGENCY_OBJ_SIZE 512
++# define EMERGENCY_OBJ_COUNT 32
++#else
++# define EMERGENCY_OBJ_SIZE 1024
++# define EMERGENCY_OBJ_COUNT 64
++#endif
++
++#ifndef __GTHREADS
++# undef EMERGENCY_OBJ_COUNT
++# define EMERGENCY_OBJ_COUNT 4
++#endif
++
++#if INT_MAX == 32767 || EMERGENCY_OBJ_COUNT <= 32
++typedef unsigned int bitmask_type;
++#else
++typedef unsigned long bitmask_type;
++#endif
++
++
++typedef char one_buffer[EMERGENCY_OBJ_SIZE] __attribute__((aligned));
++
++static __cxa_dependent_exception dependents_buffer[EMERGENCY_OBJ_COUNT];
++static bitmask_type dependents_used;
++
++namespace
++{
++ // A single mutex controlling emergency allocations.
++ __gnu_cxx::__mutex emergency_mutex;
++}
++
++extern "C" __cxa_dependent_exception*
++__cxxabiv1::__cxa_allocate_dependent_exception() _GLIBCXX_NOTHROW
++{
++ __cxa_dependent_exception *ret;
++
++ ret = static_cast<__cxa_dependent_exception*>
++ (malloc (sizeof (__cxa_dependent_exception)));
++
++ if (!ret)
++ {
++ __gnu_cxx::__scoped_lock sentry(emergency_mutex);
++
++ bitmask_type used = dependents_used;
++ unsigned int which = 0;
++
++ while (used & 1)
++ {
++ used >>= 1;
++ if (++which >= EMERGENCY_OBJ_COUNT)
++ goto failed;
++ }
++
++ dependents_used |= (bitmask_type)1 << which;
++ ret = &dependents_buffer[which];
++
++ failed:;
++
++ if (!ret)
++ std::terminate ();
++ }
++
++ // We have an uncaught exception as soon as we allocate memory. This
++ // yields uncaught_exception() true during the copy-constructor that
++ // initializes the exception object. See Issue 475.
++ __cxa_eh_globals *globals = __cxa_get_globals ();
++ globals->uncaughtExceptions += 1;
++
++ memset (ret, 0, sizeof (__cxa_dependent_exception));
++
++ return ret;
++}
++
++
++extern "C" void
++__cxxabiv1::__cxa_free_dependent_exception
++ (__cxa_dependent_exception *vptr) _GLIBCXX_NOTHROW
++{
++ char *base = (char *) dependents_buffer;
++ char *ptr = (char *) vptr;
++ if (ptr >= base
++ && ptr < base + sizeof (dependents_buffer))
++ {
++ const unsigned int which
++ = (unsigned) (ptr - base) / sizeof (__cxa_dependent_exception);
++
++ __gnu_cxx::__scoped_lock sentry(emergency_mutex);
++ dependents_used &= ~((bitmask_type)1 << which);
++ }
++ else
++ free (vptr);
++}
++
++asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD0Ev");
++asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD1Ev");
++asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD2Ev");
++asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD0Ev");
++asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD1Ev");
++asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD2Ev");
++asm (".hidden _ZN9__gnu_cxx30__throw_concurrence_lock_errorEv");
++asm (".hidden _ZN9__gnu_cxx32__throw_concurrence_unlock_errorEv");
++asm (".hidden _ZNK9__gnu_cxx24__concurrence_lock_error4whatEv");
++asm (".hidden _ZNK9__gnu_cxx26__concurrence_unlock_error4whatEv");
++asm (".hidden _ZTIN9__gnu_cxx24__concurrence_lock_errorE");
++asm (".hidden _ZTIN9__gnu_cxx26__concurrence_unlock_errorE");
++asm (".hidden _ZTSN9__gnu_cxx24__concurrence_lock_errorE");
++asm (".hidden _ZTSN9__gnu_cxx26__concurrence_unlock_errorE");
++asm (".hidden _ZTVN9__gnu_cxx24__concurrence_lock_errorE");
++asm (".hidden _ZTVN9__gnu_cxx26__concurrence_unlock_errorE");
+--- libstdc++-v3/src/nonshared98/Makefile.am.jj 2014-05-15 15:53:13.154790876 +0200
++++ libstdc++-v3/src/nonshared98/Makefile.am 2014-05-15 16:13:11.424425297 +0200
+@@ -0,0 +1,127 @@
++## Makefile for the C++03 sources of the GNU C++ Standard library.
++##
++## Copyright (C) 1997-2014 Free Software Foundation, Inc.
++##
++## This file is part of the libstdc++ version 3 distribution.
++## Process this file with automake to produce Makefile.in.
++
++## This file is part of the GNU ISO C++ Library. This library 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.
++
++## This library 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 this library; see the file COPYING3. If not see
++## .
++
++include $(top_srcdir)/fragment.am
++
++# Convenience library for C++98 runtime.
++noinst_LTLIBRARIES = libnonshared98convenience44.la \
++ libnonshared98convenience48.la
++
++headers =
++
++# Source files linked in via configuration/make substitution for a
++# particular host, but with ad hoc naming rules.
++host_sources_extra = \
++ basic_file.cc c++locale.cc \
++ ${ldbl_compat_sources} ${parallel_sources}
++
++parallel_sources44 = list_associated-2.cc
++
++if ENABLE_EXTERN_TEMPLATE
++# XTEMPLATE_FLAGS = -fno-implicit-templates
++inst_sources = \
++ snprintf_lite-inst.cc
++inst_sources44 = \
++ locale-inst.cc \
++ wlocale-inst.cc \
++ sstream-inst.cc \
++ streambuf-inst.cc
++else
++# XTEMPLATE_FLAGS =
++inst_sources =
++inst_sources44 =
++endif
++
++# Sources present in the src directory, always present.
++sources = \
++ ${inst_sources}
++sources44 = \
++ list-aux-2.cc \
++ decimal-rtti.S \
++ nullptr-rtti.S \
++ int128.S \
++ compatibility-debug_list-2.cc \
++ list.cc \
++ hash_bytes.cc \
++ stdexcept.cc \
++ eh_alloc.cc \
++ eh_tm.cc \
++ pure.cc \
++ ${parallel_sources44} \
++ ${inst_sources44}
++sources48 =
++
++vpath % $(top_srcdir)/src/nonshared98
++vpath % $(top_srcdir)
++
++libnonshared98convenience44_la_SOURCES = $(sources) $(sources44)
++libnonshared98convenience48_la_SOURCES = $(sources) $(sources48)
++
++# AM_CXXFLAGS needs to be in each subdirectory so that it can be
++# modified in a per-library or per-sub-library way. Need to manually
++# set this option because CONFIG_CXXFLAGS has to be after
++# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
++# as the occasion calls for it.
++AM_CXXFLAGS = \
++ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
++ $(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \
++ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
++
++AM_MAKEFLAGS = \
++ "gxx_include_dir=$(gxx_include_dir)"
++
++# Libtool notes
++
++# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
++# last. (That way, things like -O2 passed down from the toplevel can
++# be overridden by --enable-debug.)
++
++# 2) In general, libtool expects an argument such as `--tag=CXX' when
++# using the C++ compiler, because that will enable the settings
++# detected when C++ support was being configured. However, when no
++# such flag is given in the command line, libtool attempts to figure
++# it out by matching the compiler name in each configuration section
++# against a prefix of the command line. The problem is that, if the
++# compiler name and its initial flags stored in the libtool
++# configuration file don't match those in the command line, libtool
++# can't decide which configuration to use, and it gives up. The
++# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
++# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
++# attempt to infer which configuration to use.
++# We have to put --tag disable-shared after --tag CXX lest things
++# CXX undo the affect of disable-shared.
++LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
++ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(EXTRA_CXX_FLAGS)
++
++LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
++
++# 3) We'd have a problem when building the shared libstdc++ object if
++# the rules automake generates would be used. We cannot allow g++ to
++# be used since this would add -lstdc++ to the link line which of
++# course is problematic at this point. So, we get the top-level
++# directory to configure libstdc++-v3 to use gcc as the C++
++# compilation driver.
++CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
++ --mode=link $(CXX) \
++ $(VTV_CXXLINKFLAGS) \
++ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
+--- libstdc++-v3/src/nonshared98/sstream-inst.cc.jj 2014-05-15 15:53:13.154790876 +0200
++++ libstdc++-v3/src/nonshared98/sstream-inst.cc 2014-05-15 15:53:13.154790876 +0200
+@@ -0,0 +1,39 @@
++// Explicit instantiation file.
++
++// Copyright (C) 1997-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++//
++// ISO C++ 14882:
++//
++
++#include
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++ template void basic_stringbuf::_M_pbump(char_type*, char_type*, off_type);
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++ template void basic_stringbuf::_M_pbump(char_type*, char_type*, off_type);
++#endif
++
++} // namespace
+--- libstdc++-v3/src/nonshared98/eh_tm.cc.jj 2014-05-15 15:53:13.154790876 +0200
++++ libstdc++-v3/src/nonshared98/eh_tm.cc 2014-05-15 15:53:13.154790876 +0200
+@@ -0,0 +1,23 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../libsupc++/eh_tm.cc"
+--- libstdc++-v3/src/nonshared98/pure.cc.jj 2014-05-15 15:53:13.154790876 +0200
++++ libstdc++-v3/src/nonshared98/pure.cc 2014-05-15 15:53:13.154790876 +0200
+@@ -0,0 +1,51 @@
++// -*- C++ -*-
++// Copyright (C) 2000-2014 Free Software Foundation
++//
++// 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.
++//
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++#include
++#include "unwind-cxx.h"
++
++#if _GLIBCXX_HOSTED
++#ifdef _GLIBCXX_HAVE_UNISTD_H
++# include
++# define writestr(str) write(2, str, sizeof(str) - 1)
++# ifdef __GNU_LIBRARY__
++ /* Avoid forcing the library's meaning of `write' on the user program
++ by using the "internal" name (for use within the library). */
++/*# define write(fd, buf, n) __write((fd), (buf), (n))*/
++# endif
++#else
++# include
++# define writestr(str) std::fputs(str, stderr)
++#endif
++#else
++# define writestr(str) /* Empty */
++#endif
++
++extern "C" void
++__cxxabiv1::__cxa_deleted_virtual (void)
++{
++ writestr ("deleted virtual method called\n");
++ std::terminate ();
++}
+--- libstdc++-v3/src/nonshared98/locale-inst.cc.jj 2014-05-15 15:53:13.154790876 +0200
++++ libstdc++-v3/src/nonshared98/locale-inst.cc 2014-05-15 15:53:13.154790876 +0200
+@@ -0,0 +1,39 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++
++#ifndef C
++# define C char
++#endif
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++
++ typedef time_get S;
++
++ template
++ S::iter_type S::_M_extract_wday_or_month(iter_type, iter_type, int&,
++ const C **, size_t, ios_base&,
++ ios_base::iostate&) const;
++
++}
+--- libstdc++-v3/src/nonshared98/list-aux-2.cc.jj 2014-05-15 15:53:13.155790942 +0200
++++ libstdc++-v3/src/nonshared98/list-aux-2.cc 2014-05-15 15:53:13.155790942 +0200
+@@ -0,0 +1,56 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++extern "C"
++{
++ extern void _ZNSt15_List_node_base8transferEPS_S0_(void *f, void *l) throw();
++
++ void
++ _ZNSt15_List_node_base11_M_transferEPS_S0_(void *f, void *l) throw()
++ {
++ _ZNSt15_List_node_base8transferEPS_S0_(f, l);
++ }
++
++ extern void _ZNSt15_List_node_base7reverseEv() throw();
++
++ void
++ _ZNSt15_List_node_base10_M_reverseEv() throw()
++ {
++ _ZNSt15_List_node_base7reverseEv();
++ }
++
++ extern void _ZNSt15_List_node_base4hookEPS_(void *p) throw();
++
++ void
++ _ZNSt15_List_node_base7_M_hookEPS_(void *p) throw()
++ {
++ _ZNSt15_List_node_base4hookEPS_(p);
++ }
++
++ extern void _ZNSt15_List_node_base6unhookEv() throw();
++
++ void
++ _ZNSt15_List_node_base9_M_unhookEv() throw()
++ {
++ _ZNSt15_List_node_base6unhookEv();
++ }
++}
+--- libstdc++-v3/src/nonshared98/decimal-rtti.S.jj 2014-05-15 15:53:13.155790942 +0200
++++ libstdc++-v3/src/nonshared98/decimal-rtti.S 2014-05-15 15:53:13.155790942 +0200
+@@ -0,0 +1,266 @@
++/* Copyright (C) 2012-2014 Free Software Foundation, Inc.
++
++ This file is part of the GNU ISO C++ Library. This library 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.
++
++ This library 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.
++
++ Under Section 7 of GPL version 3, you are granted additional
++ permissions described in the GCC Runtime Library Exception, version
++ 3.1, as published by the Free Software Foundation.
++
++ You should have received a copy of the GNU General Public License and
++ a copy of the GCC Runtime Library Exception along with this program;
++ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++#if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__ \
++ || defined __i386__ || defined __powerpc__ || defined __s390__
++#ifdef __i386__
++#define ALIGN1 .align 4
++#elif defined __x86_64__
++#define ALIGN1 .align 32
++#define ALIGN2 .align 16
++#elif defined __ia64__
++#define SYM(x)x#
++#define ALIGN1 .align 8
++#define ALIGN3 .align 8
++#define SECTION3(x).section .gnu.linkonce.s.x,"aws",@progbits
++#define POINTER data8
++#define FLAGS data4
++#define PAD .skip 4
++#define STRING stringz
++#elif defined __powerpc64__
++#define ALIGN1 .align 3
++#define ALIGN3 .align 3
++#elif defined __powerpc__
++#define ALIGN1 .align 2
++#define ALIGN3 .align 2
++#define SECTION2(x).section .gnu.linkonce.s.x,"aw",@progbits
++#define SECTION3(x)SECTION2(x)
++#elif defined __s390x__
++#define ALIGN1 .align 8
++#define ALIGN3 .align 2
++#elif defined __s390__
++#define ALIGN1 .align 4
++#define ALIGN3 .align 2
++#endif
++#if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__
++#define SIZE1 32
++#define SIZE2 16
++#define OFF 16
++#ifndef POINTER
++#define POINTER .quad
++#endif
++#ifndef FLAGS
++#define FLAGS .long
++#endif
++#ifndef PAD
++#define PAD .zero 4
++#endif
++#else
++#define SIZE1 16
++#define SIZE2 8
++#define OFF 8
++#ifndef POINTER
++#define POINTER .long
++#endif
++#ifndef FLAGS
++#define FLAGS .long
++#endif
++#ifndef PAD
++#define PAD
++#endif
++#endif
++#ifndef SYM
++#define SYM(x)x
++#endif
++#ifndef ALIGN2
++#define ALIGN2 ALIGN1
++#endif
++#ifndef ALIGN3
++#define ALIGN3
++#endif
++#ifndef SECTION1
++#define SECTION1(x).section .gnu.linkonce.d.rel.ro.x,"aw",@progbits
++#endif
++#ifndef SECTION2
++#define SECTION2(x)SECTION1(x)
++#endif
++#ifndef SECTION3
++#define SECTION3(x).section .gnu.linkonce.r.x,"a",@progbits
++#endif
++#ifndef STRING
++#define STRING .string
++#endif
++
++ .weak SYM(_ZTIPKDd)
++ SECTION1(_ZTIPKDd)
++ ALIGN1
++ .type SYM(_ZTIPKDd), @object
++ .size SYM(_ZTIPKDd), SIZE1
++_ZTIPKDd:
++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF
++ POINTER SYM(_ZTSPKDd)
++ FLAGS 1
++ PAD
++ POINTER SYM(_ZTIDd)
++ .weak SYM(_ZTIPDd)
++ SECTION1(_ZTIPDd)
++ ALIGN1
++ .type SYM(_ZTIPDd), @object
++ .size SYM(_ZTIPDd), SIZE1
++_ZTIPDd:
++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF
++ POINTER SYM(_ZTSPDd)
++ FLAGS 0
++ PAD
++ POINTER SYM(_ZTIDd)
++ .weak SYM(_ZTIDd)
++ SECTION2(_ZTIDd)
++ ALIGN2
++ .type SYM(_ZTIDd), @object
++ .size SYM(_ZTIDd), SIZE2
++_ZTIDd:
++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF
++ POINTER SYM(_ZTSDd)
++ .weak SYM(_ZTIPKDe)
++ SECTION1(_ZTIPKDe)
++ ALIGN1
++ .type SYM(_ZTIPKDe), @object
++ .size SYM(_ZTIPKDe), SIZE1
++_ZTIPKDe:
++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF
++ POINTER SYM(_ZTSPKDe)
++ FLAGS 1
++ PAD
++ POINTER SYM(_ZTIDe)
++ .weak SYM(_ZTIPDe)
++ SECTION1(_ZTIPDe)
++ ALIGN1
++ .type SYM(_ZTIPDe), @object
++ .size SYM(_ZTIPDe), SIZE1
++_ZTIPDe:
++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF
++ POINTER SYM(_ZTSPDe)
++ FLAGS 0
++ PAD
++ POINTER SYM(_ZTIDe)
++ .weak SYM(_ZTIDe)
++ SECTION2(_ZTIDe)
++ ALIGN2
++ .type SYM(_ZTIDe), @object
++ .size SYM(_ZTIDe), SIZE2
++_ZTIDe:
++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF
++ POINTER SYM(_ZTSDe)
++ .weak SYM(_ZTIPKDf)
++ SECTION1(_ZTIPKDf)
++ ALIGN1
++ .type SYM(_ZTIPKDf), @object
++ .size SYM(_ZTIPKDf), SIZE1
++_ZTIPKDf:
++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF
++ POINTER SYM(_ZTSPKDf)
++ FLAGS 1
++ PAD
++ POINTER SYM(_ZTIDf)
++ .weak SYM(_ZTIPDf)
++ SECTION1(_ZTIPDf)
++ ALIGN1
++ .type SYM(_ZTIPDf), @object
++ .size SYM(_ZTIPDf), SIZE1
++_ZTIPDf:
++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF
++ POINTER SYM(_ZTSPDf)
++ FLAGS 0
++ PAD
++ POINTER SYM(_ZTIDf)
++ .weak SYM(_ZTIDf)
++ SECTION2(_ZTIDf)
++ ALIGN2
++ .type SYM(_ZTIDf), @object
++ .size SYM(_ZTIDf), SIZE2
++_ZTIDf:
++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF
++ POINTER SYM(_ZTSDf)
++ .weak SYM(_ZTSPKDd)
++ .hidden SYM(_ZTSPKDd)
++ SECTION3(_ZTSPKDd)
++ ALIGN3
++ .type SYM(_ZTSPKDd), @object
++ .size SYM(_ZTSPKDd), 5
++_ZTSPKDd:
++ STRING "PKDd"
++ .weak SYM(_ZTSPDd)
++ .hidden SYM(_ZTSPDd)
++ SECTION3(_ZTSPDd)
++ ALIGN3
++ .type SYM(_ZTSPDd), @object
++ .size SYM(_ZTSPDd), 4
++_ZTSPDd:
++ STRING "PDd"
++ .weak SYM(_ZTSDd)
++ .hidden SYM(_ZTSDd)
++ SECTION3(_ZTSDd)
++ ALIGN3
++ .type SYM(_ZTSDd), @object
++ .size SYM(_ZTSDd), 3
++_ZTSDd:
++ STRING "Dd"
++ .weak SYM(_ZTSPKDe)
++ .hidden SYM(_ZTSPKDe)
++ SECTION3(_ZTSPKDe)
++ ALIGN3
++ .type SYM(_ZTSPKDe), @object
++ .size SYM(_ZTSPKDe), 5
++_ZTSPKDe:
++ STRING "PKDe"
++ .weak SYM(_ZTSPDe)
++ .hidden SYM(_ZTSPDe)
++ SECTION3(_ZTSPDe)
++ ALIGN3
++ .type SYM(_ZTSPDe), @object
++ .size SYM(_ZTSPDe), 4
++_ZTSPDe:
++ STRING "PDe"
++ .weak SYM(_ZTSDe)
++ .hidden SYM(_ZTSDe)
++ SECTION3(_ZTSDe)
++ ALIGN3
++ .type SYM(_ZTSDe), @object
++ .size SYM(_ZTSDe), 3
++_ZTSDe:
++ STRING "De"
++ .weak SYM(_ZTSPKDf)
++ .hidden SYM(_ZTSPKDf)
++ SECTION3(_ZTSPKDf)
++ ALIGN3
++ .type SYM(_ZTSPKDf), @object
++ .size SYM(_ZTSPKDf), 5
++_ZTSPKDf:
++ STRING "PKDf"
++ .weak SYM(_ZTSPDf)
++ .hidden SYM(_ZTSPDf)
++ SECTION3(_ZTSPDf)
++ ALIGN3
++ .type SYM(_ZTSPDf), @object
++ .size SYM(_ZTSPDf), 4
++_ZTSPDf:
++ STRING "PDf"
++ .weak SYM(_ZTSDf)
++ .hidden SYM(_ZTSDf)
++ SECTION3(_ZTSDf)
++ ALIGN3
++ .type SYM(_ZTSDf), @object
++ .size SYM(_ZTSDf), 3
++_ZTSDf:
++ STRING "Df"
++#endif
++ .section .note.GNU-stack,"",@progbits
+--- libstdc++-v3/src/nonshared98/Makefile.in.jj 2014-05-15 15:53:13.155790942 +0200
++++ libstdc++-v3/src/nonshared98/Makefile.in 2014-05-15 16:13:18.904386894 +0200
+@@ -0,0 +1,688 @@
++# Makefile.in generated by automake 1.11.1 from Makefile.am.
++# @configure_input@
++
++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
++# Inc.
++# This Makefile.in is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
++# PARTICULAR PURPOSE.
++
++@SET_MAKE@
++
++VPATH = @srcdir@
++pkgdatadir = $(datadir)/@PACKAGE@
++pkgincludedir = $(includedir)/@PACKAGE@
++pkglibdir = $(libdir)/@PACKAGE@
++pkglibexecdir = $(libexecdir)/@PACKAGE@
++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
++install_sh_DATA = $(install_sh) -c -m 644
++install_sh_PROGRAM = $(install_sh) -c
++install_sh_SCRIPT = $(install_sh) -c
++INSTALL_HEADER = $(INSTALL_DATA)
++transform = $(program_transform_name)
++NORMAL_INSTALL = :
++PRE_INSTALL = :
++POST_INSTALL = :
++NORMAL_UNINSTALL = :
++PRE_UNINSTALL = :
++POST_UNINSTALL = :
++build_triplet = @build@
++host_triplet = @host@
++target_triplet = @target@
++DIST_COMMON = $(top_srcdir)/fragment.am $(srcdir)/Makefile.in \
++ $(srcdir)/Makefile.am
++subdir = src/nonshared98
++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
++am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
++ $(top_srcdir)/../config/enable.m4 \
++ $(top_srcdir)/../config/futex.m4 \
++ $(top_srcdir)/../config/iconv.m4 \
++ $(top_srcdir)/../config/lead-dot.m4 \
++ $(top_srcdir)/../config/lib-ld.m4 \
++ $(top_srcdir)/../config/lib-link.m4 \
++ $(top_srcdir)/../config/lib-prefix.m4 \
++ $(top_srcdir)/../config/lthostflags.m4 \
++ $(top_srcdir)/../config/multi.m4 \
++ $(top_srcdir)/../config/no-executables.m4 \
++ $(top_srcdir)/../config/override.m4 \
++ $(top_srcdir)/../config/stdint.m4 \
++ $(top_srcdir)/../config/unwind_ipinfo.m4 \
++ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
++ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
++ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \
++ $(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
++ $(top_srcdir)/../config/gc++filt.m4 \
++ $(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
++ $(top_srcdir)/configure.ac
++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
++ $(ACLOCAL_M4)
++CONFIG_HEADER = $(top_builddir)/config.h
++CONFIG_CLEAN_FILES =
++CONFIG_CLEAN_VPATH_FILES =
++LTLIBRARIES = $(noinst_LTLIBRARIES)
++libnonshared98convenience44_la_LIBADD =
++@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_1 = snprintf_lite-inst.lo
++am__objects_2 = $(am__objects_1)
++am__objects_3 = list_associated-2.lo
++@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_4 = locale-inst.lo \
++@ENABLE_EXTERN_TEMPLATE_TRUE@ wlocale-inst.lo sstream-inst.lo \
++@ENABLE_EXTERN_TEMPLATE_TRUE@ streambuf-inst.lo
++am__objects_5 = list-aux-2.lo decimal-rtti.lo nullptr-rtti.lo \
++ int128.lo compatibility-debug_list-2.lo list.lo hash_bytes.lo \
++ stdexcept.lo eh_alloc.lo eh_tm.lo pure.lo $(am__objects_3) \
++ $(am__objects_4)
++am_libnonshared98convenience44_la_OBJECTS = $(am__objects_2) \
++ $(am__objects_5)
++libnonshared98convenience44_la_OBJECTS = \
++ $(am_libnonshared98convenience44_la_OBJECTS)
++libnonshared98convenience48_la_LIBADD =
++am__objects_6 =
++am_libnonshared98convenience48_la_OBJECTS = $(am__objects_2) \
++ $(am__objects_6)
++libnonshared98convenience48_la_OBJECTS = \
++ $(am_libnonshared98convenience48_la_OBJECTS)
++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
++depcomp =
++am__depfiles_maybe =
++CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
++LTCPPASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
++ --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
++CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
++CXXLD = $(CXX)
++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
++ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++CCLD = $(CC)
++LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
++ $(LDFLAGS) -o $@
++SOURCES = $(libnonshared98convenience44_la_SOURCES) \
++ $(libnonshared98convenience48_la_SOURCES)
++ETAGS = etags
++CTAGS = ctags
++ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@
++ACLOCAL = @ACLOCAL@
++ALLOCATOR_H = @ALLOCATOR_H@
++ALLOCATOR_NAME = @ALLOCATOR_NAME@
++AMTAR = @AMTAR@
++AR = @AR@
++AS = @AS@
++ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@
++ATOMIC_FLAGS = @ATOMIC_FLAGS@
++ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@
++AUTOCONF = @AUTOCONF@
++AUTOHEADER = @AUTOHEADER@
++AUTOMAKE = @AUTOMAKE@
++AWK = @AWK@
++BASIC_FILE_CC = @BASIC_FILE_CC@
++BASIC_FILE_H = @BASIC_FILE_H@
++CC = @CC@
++CCAS = @CCAS@
++CCASFLAGS = @CCASFLAGS@
++CCODECVT_CC = @CCODECVT_CC@
++CCOLLATE_CC = @CCOLLATE_CC@
++CCTYPE_CC = @CCTYPE_CC@
++CFLAGS = @CFLAGS@
++CLOCALE_CC = @CLOCALE_CC@
++CLOCALE_H = @CLOCALE_H@
++CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
++CMESSAGES_CC = @CMESSAGES_CC@
++CMESSAGES_H = @CMESSAGES_H@
++CMONEY_CC = @CMONEY_CC@
++CNUMERIC_CC = @CNUMERIC_CC@
++CPP = @CPP@
++CPPFLAGS = @CPPFLAGS@
++CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
++CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@
++CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
++CSTDIO_H = @CSTDIO_H@
++CTIME_CC = @CTIME_CC@
++CTIME_H = @CTIME_H@
++CXX = @CXX@
++CXXCPP = @CXXCPP@
++CXXFILT = @CXXFILT@
++CXXFLAGS = @CXXFLAGS@
++CYGPATH_W = @CYGPATH_W@
++C_INCLUDE_DIR = @C_INCLUDE_DIR@
++DBLATEX = @DBLATEX@
++DEBUG_FLAGS = @DEBUG_FLAGS@
++DEFS = @DEFS@
++DOT = @DOT@
++DOXYGEN = @DOXYGEN@
++DSYMUTIL = @DSYMUTIL@
++DUMPBIN = @DUMPBIN@
++ECHO_C = @ECHO_C@
++ECHO_N = @ECHO_N@
++ECHO_T = @ECHO_T@
++EGREP = @EGREP@
++ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
++EXEEXT = @EXEEXT@
++EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
++FGREP = @FGREP@
++GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
++GLIBCXX_LIBS = @GLIBCXX_LIBS@
++GREP = @GREP@
++HWCAP_FLAGS = @HWCAP_FLAGS@
++INSTALL = @INSTALL@
++INSTALL_DATA = @INSTALL_DATA@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_SCRIPT = @INSTALL_SCRIPT@
++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
++LD = @LD@
++LDFLAGS = @LDFLAGS@
++LIBICONV = @LIBICONV@
++LIBOBJS = @LIBOBJS@
++LIBS = @LIBS@
++LIBTOOL = @LIBTOOL@
++LIPO = @LIPO@
++LN_S = @LN_S@
++LTLIBICONV = @LTLIBICONV@
++LTLIBOBJS = @LTLIBOBJS@
++MAINT = @MAINT@
++MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
++NM = @NM@
++NMEDIT = @NMEDIT@
++OBJDUMP = @OBJDUMP@
++OBJEXT = @OBJEXT@
++OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
++OPT_LDFLAGS = @OPT_LDFLAGS@
++OS_INC_SRCDIR = @OS_INC_SRCDIR@
++OTOOL = @OTOOL@
++OTOOL64 = @OTOOL64@
++PACKAGE = @PACKAGE@
++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
++PACKAGE_NAME = @PACKAGE_NAME@
++PACKAGE_STRING = @PACKAGE_STRING@
++PACKAGE_TARNAME = @PACKAGE_TARNAME@
++PACKAGE_URL = @PACKAGE_URL@
++PACKAGE_VERSION = @PACKAGE_VERSION@
++PATH_SEPARATOR = @PATH_SEPARATOR@
++PDFLATEX = @PDFLATEX@
++RANLIB = @RANLIB@
++SECTION_FLAGS = @SECTION_FLAGS@
++SECTION_LDFLAGS = @SECTION_LDFLAGS@
++SED = @SED@
++SET_MAKE = @SET_MAKE@
++SHELL = @SHELL@
++STRIP = @STRIP@
++SYMVER_FILE = @SYMVER_FILE@
++TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
++USE_NLS = @USE_NLS@
++VERSION = @VERSION@
++VTV_CXXFLAGS = @VTV_CXXFLAGS@
++VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
++VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
++WARN_FLAGS = @WARN_FLAGS@
++WERROR = @WERROR@
++XMLLINT = @XMLLINT@
++XSLTPROC = @XSLTPROC@
++XSL_STYLE_DIR = @XSL_STYLE_DIR@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
++ac_ct_CC = @ac_ct_CC@
++ac_ct_CXX = @ac_ct_CXX@
++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
++am__leading_dot = @am__leading_dot@
++am__tar = @am__tar@
++am__untar = @am__untar@
++baseline_dir = @baseline_dir@
++baseline_subdir_switch = @baseline_subdir_switch@
++bindir = @bindir@
++build = @build@
++build_alias = @build_alias@
++build_cpu = @build_cpu@
++build_os = @build_os@
++build_vendor = @build_vendor@
++builddir = @builddir@
++check_msgfmt = @check_msgfmt@
++datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
++enable_shared = @enable_shared@
++enable_static = @enable_static@
++exec_prefix = @exec_prefix@
++glibcxx_MOFILES = @glibcxx_MOFILES@
++glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
++glibcxx_POFILES = @glibcxx_POFILES@
++glibcxx_builddir = @glibcxx_builddir@
++glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
++glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
++glibcxx_localedir = @glibcxx_localedir@
++glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
++glibcxx_prefixdir = @glibcxx_prefixdir@
++glibcxx_srcdir = @glibcxx_srcdir@
++glibcxx_toolexecdir = @glibcxx_toolexecdir@
++glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@
++gxx_include_dir = @gxx_include_dir@
++host = @host@
++host_alias = @host_alias@
++host_cpu = @host_cpu@
++host_os = @host_os@
++host_vendor = @host_vendor@
++htmldir = @htmldir@
++includedir = @includedir@
++infodir = @infodir@
++install_sh = @install_sh@
++libdir = @libdir@
++libexecdir = @libexecdir@
++libtool_VERSION = @libtool_VERSION@
++localedir = @localedir@
++localstatedir = @localstatedir@
++lt_host_flags = @lt_host_flags@
++mandir = @mandir@
++mkdir_p = @mkdir_p@
++multi_basedir = @multi_basedir@
++oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
++port_specific_symbol_files = @port_specific_symbol_files@
++prefix = @prefix@
++program_transform_name = @program_transform_name@
++psdir = @psdir@
++python_mod_dir = @python_mod_dir@
++sbindir = @sbindir@
++sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
++sysconfdir = @sysconfdir@
++target = @target@
++target_alias = @target_alias@
++target_cpu = @target_cpu@
++target_os = @target_os@
++target_vendor = @target_vendor@
++thread_header = @thread_header@
++top_build_prefix = @top_build_prefix@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
++toplevel_builddir = @toplevel_builddir@
++toplevel_srcdir = @toplevel_srcdir@
++
++# May be used by various substitution variables.
++gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
++MAINT_CHARSET = latin1
++mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
++PWD_COMMAND = $${PWDCMD-pwd}
++STAMP = echo timestamp >
++toolexecdir = $(glibcxx_toolexecdir)
++toolexeclibdir = $(glibcxx_toolexeclibdir)
++@ENABLE_WERROR_FALSE@WERROR_FLAG =
++@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
++@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS =
++@ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates
++
++# These bits are all figured out from configure. Look in acinclude.m4
++# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
++CONFIG_CXXFLAGS = \
++ $(SECTION_FLAGS) $(HWCAP_FLAGS) -frandom-seed=$@
++
++WARN_CXXFLAGS = \
++ $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
++
++
++# -I/-D flags to pass when compiling.
++AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
++
++# Convenience library for C++98 runtime.
++noinst_LTLIBRARIES = libnonshared98convenience44.la \
++ libnonshared98convenience48.la
++
++headers =
++
++# Source files linked in via configuration/make substitution for a
++# particular host, but with ad hoc naming rules.
++host_sources_extra = \
++ basic_file.cc c++locale.cc \
++ ${ldbl_compat_sources} ${parallel_sources}
++
++parallel_sources44 = list_associated-2.cc
++# XTEMPLATE_FLAGS =
++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources =
++
++# XTEMPLATE_FLAGS = -fno-implicit-templates
++@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = \
++@ENABLE_EXTERN_TEMPLATE_TRUE@ snprintf_lite-inst.cc
++
++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources44 =
++@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources44 = \
++@ENABLE_EXTERN_TEMPLATE_TRUE@ locale-inst.cc \
++@ENABLE_EXTERN_TEMPLATE_TRUE@ wlocale-inst.cc \
++@ENABLE_EXTERN_TEMPLATE_TRUE@ sstream-inst.cc \
++@ENABLE_EXTERN_TEMPLATE_TRUE@ streambuf-inst.cc
++
++
++# Sources present in the src directory, always present.
++sources = \
++ ${inst_sources}
++
++sources44 = \
++ list-aux-2.cc \
++ decimal-rtti.S \
++ nullptr-rtti.S \
++ int128.S \
++ compatibility-debug_list-2.cc \
++ list.cc \
++ hash_bytes.cc \
++ stdexcept.cc \
++ eh_alloc.cc \
++ eh_tm.cc \
++ pure.cc \
++ ${parallel_sources44} \
++ ${inst_sources44}
++
++sources48 =
++libnonshared98convenience44_la_SOURCES = $(sources) $(sources44)
++libnonshared98convenience48_la_SOURCES = $(sources) $(sources48)
++
++# AM_CXXFLAGS needs to be in each subdirectory so that it can be
++# modified in a per-library or per-sub-library way. Need to manually
++# set this option because CONFIG_CXXFLAGS has to be after
++# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
++# as the occasion calls for it.
++AM_CXXFLAGS = \
++ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
++ $(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \
++ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
++
++AM_MAKEFLAGS = \
++ "gxx_include_dir=$(gxx_include_dir)"
++
++
++# Libtool notes
++
++# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
++# last. (That way, things like -O2 passed down from the toplevel can
++# be overridden by --enable-debug.)
++
++# 2) In general, libtool expects an argument such as `--tag=CXX' when
++# using the C++ compiler, because that will enable the settings
++# detected when C++ support was being configured. However, when no
++# such flag is given in the command line, libtool attempts to figure
++# it out by matching the compiler name in each configuration section
++# against a prefix of the command line. The problem is that, if the
++# compiler name and its initial flags stored in the libtool
++# configuration file don't match those in the command line, libtool
++# can't decide which configuration to use, and it gives up. The
++# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
++# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
++# attempt to infer which configuration to use.
++# We have to put --tag disable-shared after --tag CXX lest things
++# CXX undo the affect of disable-shared.
++LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
++ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(EXTRA_CXX_FLAGS)
++
++LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
++
++# 3) We'd have a problem when building the shared libstdc++ object if
++# the rules automake generates would be used. We cannot allow g++ to
++# be used since this would add -lstdc++ to the link line which of
++# course is problematic at this point. So, we get the top-level
++# directory to configure libstdc++-v3 to use gcc as the C++
++# compilation driver.
++CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
++ --mode=link $(CXX) \
++ $(VTV_CXXLINKFLAGS) \
++ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
++
++all: all-am
++
++.SUFFIXES:
++.SUFFIXES: .S .cc .lo .o .obj
++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/fragment.am $(am__configure_deps)
++ @for dep in $?; do \
++ case '$(am__configure_deps)' in \
++ *$$dep*) \
++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
++ && { if test -f $@; then exit 0; else break; fi; }; \
++ exit 1;; \
++ esac; \
++ done; \
++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps src/nonshared98/Makefile'; \
++ $(am__cd) $(top_srcdir) && \
++ $(AUTOMAKE) --foreign --ignore-deps src/nonshared98/Makefile
++.PRECIOUS: Makefile
++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
++ @case '$?' in \
++ *config.status*) \
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
++ *) \
++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
++ esac;
++
++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++
++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++$(am__aclocal_m4_deps):
++
++clean-noinstLTLIBRARIES:
++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
++ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
++ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
++ test "$$dir" != "$$p" || dir=.; \
++ echo "rm -f \"$${dir}/so_locations\""; \
++ rm -f "$${dir}/so_locations"; \
++ done
++libnonshared98convenience44.la: $(libnonshared98convenience44_la_OBJECTS) $(libnonshared98convenience44_la_DEPENDENCIES)
++ $(CXXLINK) $(libnonshared98convenience44_la_OBJECTS) $(libnonshared98convenience44_la_LIBADD) $(LIBS)
++libnonshared98convenience48.la: $(libnonshared98convenience48_la_OBJECTS) $(libnonshared98convenience48_la_DEPENDENCIES)
++ $(CXXLINK) $(libnonshared98convenience48_la_OBJECTS) $(libnonshared98convenience48_la_LIBADD) $(LIBS)
++
++mostlyclean-compile:
++ -rm -f *.$(OBJEXT)
++
++distclean-compile:
++ -rm -f *.tab.c
++
++.S.o:
++ $(CPPASCOMPILE) -c -o $@ $<
++
++.S.obj:
++ $(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
++
++.S.lo:
++ $(LTCPPASCOMPILE) -c -o $@ $<
++
++.cc.o:
++ $(CXXCOMPILE) -c -o $@ $<
++
++.cc.obj:
++ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
++
++.cc.lo:
++ $(LTCXXCOMPILE) -c -o $@ $<
++
++mostlyclean-libtool:
++ -rm -f *.lo
++
++clean-libtool:
++ -rm -rf .libs _libs
++
++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
++ mkid -fID $$unique
++tags: TAGS
++
++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
++ $(TAGS_FILES) $(LISP)
++ set x; \
++ here=`pwd`; \
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
++ shift; \
++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
++ test -n "$$unique" || unique=$$empty_fix; \
++ if test $$# -gt 0; then \
++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
++ "$$@" $$unique; \
++ else \
++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
++ $$unique; \
++ fi; \
++ fi
++ctags: CTAGS
++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
++ $(TAGS_FILES) $(LISP)
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
++ test -z "$(CTAGS_ARGS)$$unique" \
++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
++ $$unique
++
++GTAGS:
++ here=`$(am__cd) $(top_builddir) && pwd` \
++ && $(am__cd) $(top_srcdir) \
++ && gtags -i $(GTAGS_ARGS) "$$here"
++
++distclean-tags:
++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
++check-am: all-am
++check: check-am
++all-am: Makefile $(LTLIBRARIES)
++installdirs:
++install: install-am
++install-exec: install-exec-am
++install-data: install-data-am
++uninstall: uninstall-am
++
++install-am: all-am
++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
++
++installcheck: installcheck-am
++install-strip:
++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
++ `test -z '$(STRIP)' || \
++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
++mostlyclean-generic:
++
++clean-generic:
++
++distclean-generic:
++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
++
++maintainer-clean-generic:
++ @echo "This command is intended for maintainers to use"
++ @echo "it deletes files that may require special tools to rebuild."
++clean: clean-am
++
++clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
++ mostlyclean-am
++
++distclean: distclean-am
++ -rm -f Makefile
++distclean-am: clean-am distclean-compile distclean-generic \
++ distclean-tags
++
++dvi: dvi-am
++
++dvi-am:
++
++html: html-am
++
++html-am:
++
++info: info-am
++
++info-am:
++
++install-data-am:
++
++install-dvi: install-dvi-am
++
++install-dvi-am:
++
++install-exec-am:
++
++install-html: install-html-am
++
++install-html-am:
++
++install-info: install-info-am
++
++install-info-am:
++
++install-man:
++
++install-pdf: install-pdf-am
++
++install-pdf-am:
++
++install-ps: install-ps-am
++
++install-ps-am:
++
++installcheck-am:
++
++maintainer-clean: maintainer-clean-am
++ -rm -f Makefile
++maintainer-clean-am: distclean-am maintainer-clean-generic
++
++mostlyclean: mostlyclean-am
++
++mostlyclean-am: mostlyclean-compile mostlyclean-generic \
++ mostlyclean-libtool
++
++pdf: pdf-am
++
++pdf-am:
++
++ps: ps-am
++
++ps-am:
++
++uninstall-am:
++
++.MAKE: install-am install-strip
++
++.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
++ clean-libtool clean-noinstLTLIBRARIES ctags distclean \
++ distclean-compile distclean-generic distclean-libtool \
++ distclean-tags dvi dvi-am html html-am info info-am install \
++ install-am install-data install-data-am install-dvi \
++ install-dvi-am install-exec install-exec-am install-html \
++ install-html-am install-info install-info-am install-man \
++ install-pdf install-pdf-am install-ps install-ps-am \
++ install-strip installcheck installcheck-am installdirs \
++ maintainer-clean maintainer-clean-generic mostlyclean \
++ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
++ pdf pdf-am ps ps-am tags uninstall uninstall-am
++
++
++vpath % $(top_srcdir)/src/nonshared98
++vpath % $(top_srcdir)
++
++# Tell versions [3.59,3.63) of GNU make to not export all variables.
++# Otherwise a system limit (for SysV at least) may be exceeded.
++.NOEXPORT:
+--- libstdc++-v3/src/nonshared98/stdexcept.cc.jj 2014-05-15 15:53:13.155790942 +0200
++++ libstdc++-v3/src/nonshared98/stdexcept.cc 2014-05-15 15:53:13.155790942 +0200
+@@ -0,0 +1,44 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#ifdef __ARM_EABI__
++#define RET const void *
++#else
++#define RET void
++#endif
++#define BASE_DTOR(name) \
++extern RET _ZN##name##D1Ev (const void *t); \
++RET _ZN##name##D2Ev (const void *t) \
++{ \
++ return _ZN##name##D1Ev (t); \
++} \
++
++extern "C"
++{
++ BASE_DTOR (St11range_error)
++ BASE_DTOR (St12domain_error)
++ BASE_DTOR (St12length_error)
++ BASE_DTOR (St12out_of_range)
++ BASE_DTOR (St14overflow_error)
++ BASE_DTOR (St15underflow_error)
++ BASE_DTOR (St16invalid_argument)
++}
+--- libstdc++-v3/src/nonshared98/nullptr-rtti.S.jj 2014-05-15 15:53:13.156791007 +0200
++++ libstdc++-v3/src/nonshared98/nullptr-rtti.S 2014-05-15 15:53:13.155790942 +0200
+@@ -0,0 +1,158 @@
++/* Copyright (C) 2012-2014 Free Software Foundation, Inc.
++
++ This file is part of the GNU ISO C++ Library. This library 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.
++
++ This library 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.
++
++ Under Section 7 of GPL version 3, you are granted additional
++ permissions described in the GCC Runtime Library Exception, version
++ 3.1, as published by the Free Software Foundation.
++
++ You should have received a copy of the GNU General Public License and
++ a copy of the GCC Runtime Library Exception along with this program;
++ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++#if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__ \
++ || defined __i386__ || defined __powerpc__ || defined __s390__
++#ifdef __i386__
++#define ALIGN1 .align 4
++#elif defined __x86_64__
++#define ALIGN1 .align 32
++#define ALIGN2 .align 16
++#elif defined __ia64__
++#define SYM(x)x#
++#define ALIGN1 .align 8
++#define ALIGN3 .align 8
++#define SECTION3(x).section .gnu.linkonce.s.x,"aws",@progbits
++#define POINTER data8
++#define FLAGS data4
++#define PAD .skip 4
++#define STRING stringz
++#elif defined __powerpc64__
++#define ALIGN1 .align 3
++#define ALIGN3 .align 3
++#elif defined __powerpc__
++#define ALIGN1 .align 2
++#define ALIGN3 .align 2
++#define SECTION2(x).section .gnu.linkonce.s.x,"aw",@progbits
++#define SECTION3(x)SECTION2(x)
++#elif defined __s390x__
++#define ALIGN1 .align 8
++#define ALIGN3 .align 2
++#elif defined __s390__
++#define ALIGN1 .align 4
++#define ALIGN3 .align 2
++#endif
++#if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__
++#define SIZE1 32
++#define SIZE2 16
++#define OFF 16
++#ifndef POINTER
++#define POINTER .quad
++#endif
++#ifndef FLAGS
++#define FLAGS .long
++#endif
++#ifndef PAD
++#define PAD .zero 4
++#endif
++#else
++#define SIZE1 16
++#define SIZE2 8
++#define OFF 8
++#ifndef POINTER
++#define POINTER .long
++#endif
++#ifndef FLAGS
++#define FLAGS .long
++#endif
++#ifndef PAD
++#define PAD
++#endif
++#endif
++#ifndef SYM
++#define SYM(x)x
++#endif
++#ifndef ALIGN2
++#define ALIGN2 ALIGN1
++#endif
++#ifndef ALIGN3
++#define ALIGN3
++#endif
++#ifndef SECTION1
++#define SECTION1(x).section .gnu.linkonce.d.rel.ro.x,"aw",@progbits
++#endif
++#ifndef SECTION2
++#define SECTION2(x)SECTION1(x)
++#endif
++#ifndef SECTION3
++#define SECTION3(x).section .gnu.linkonce.r.x,"a",@progbits
++#endif
++#ifndef STRING
++#define STRING .string
++#endif
++
++ .weak SYM(_ZTIPKDn)
++ SECTION1(_ZTIPKDn)
++ ALIGN1
++ .type SYM(_ZTIPKDn), @object
++ .size SYM(_ZTIPKDn), SIZE1
++_ZTIPKDn:
++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF
++ POINTER SYM(_ZTSPKDn)
++ FLAGS 1
++ PAD
++ POINTER SYM(_ZTIDn)
++ .weak SYM(_ZTIPDn)
++ SECTION1(_ZTIPDn)
++ ALIGN1
++ .type SYM(_ZTIPDn), @object
++ .size SYM(_ZTIPDn), SIZE1
++_ZTIPDn:
++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF
++ POINTER SYM(_ZTSPDn)
++ FLAGS 0
++ PAD
++ POINTER SYM(_ZTIDn)
++ .weak SYM(_ZTIDn)
++ SECTION2(_ZTIDn)
++ ALIGN2
++ .type SYM(_ZTIDn), @object
++ .size SYM(_ZTIDn), SIZE2
++_ZTIDn:
++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF
++ POINTER SYM(_ZTSDn)
++ .weak SYM(_ZTSPKDn)
++ .hidden SYM(_ZTSPKDn)
++ SECTION3(_ZTSPKDn)
++ ALIGN3
++ .type SYM(_ZTSPKDn), @object
++ .size SYM(_ZTSPKDn), 5
++_ZTSPKDn:
++ STRING "PKDn"
++ .weak SYM(_ZTSPDn)
++ .hidden SYM(_ZTSPDn)
++ SECTION3(_ZTSPDn)
++ ALIGN3
++ .type SYM(_ZTSPDn), @object
++ .size SYM(_ZTSPDn), 4
++_ZTSPDn:
++ STRING "PDn"
++ .weak SYM(_ZTSDn)
++ .hidden SYM(_ZTSDn)
++ SECTION3(_ZTSDn)
++ ALIGN3
++ .type SYM(_ZTSDn), @object
++ .size SYM(_ZTSDn), 3
++_ZTSDn:
++ STRING "Dn"
++#endif
++ .section .note.GNU-stack,"",@progbits
+--- libstdc++-v3/src/nonshared98/int128.S.jj 2014-05-15 15:53:13.156791007 +0200
++++ libstdc++-v3/src/nonshared98/int128.S 2014-05-15 15:53:13.156791007 +0200
+@@ -0,0 +1,212 @@
++/* Copyright (C) 2012-2014 Free Software Foundation, Inc.
++
++ This file is part of the GNU ISO C++ Library. This library 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.
++
++ This library 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.
++
++ Under Section 7 of GPL version 3, you are granted additional
++ permissions described in the GCC Runtime Library Exception, version
++ 3.1, as published by the Free Software Foundation.
++
++ You should have received a copy of the GNU General Public License and
++ a copy of the GCC Runtime Library Exception along with this program;
++ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++ . */
++
++#if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__ \
++ /* || defined __i386__ || defined __powerpc__ || defined __s390__ */
++#ifdef __i386__
++#define ALIGN1 .align 4
++#elif defined __x86_64__
++#define ALIGN1 .align 32
++#define ALIGN2 .align 16
++#elif defined __ia64__
++#define SYM(x)x#
++#define ALIGN1 .align 8
++#define ALIGN3 .align 8
++#define SECTION3(x).section .gnu.linkonce.s.x,"aws",@progbits
++#define POINTER data8
++#define FLAGS data4
++#define PAD .skip 4
++#define STRING stringz
++#elif defined __powerpc64__
++#define ALIGN1 .align 3
++#define ALIGN3 .align 3
++#elif defined __powerpc__
++#define ALIGN1 .align 2
++#define ALIGN3 .align 2
++#define SECTION2(x).section .gnu.linkonce.s.x,"aw",@progbits
++#define SECTION3(x)SECTION2(x)
++#elif defined __s390x__
++#define ALIGN1 .align 8
++#define ALIGN3 .align 2
++#elif defined __s390__
++#define ALIGN1 .align 4
++#define ALIGN3 .align 2
++#endif
++#if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__
++#define SIZE1 32
++#define SIZE2 16
++#define OFF 16
++#ifndef POINTER
++#define POINTER .quad
++#endif
++#ifndef FLAGS
++#define FLAGS .long
++#endif
++#ifndef PAD
++#define PAD .zero 4
++#endif
++#else
++#define SIZE1 16
++#define SIZE2 8
++#define OFF 8
++#ifndef POINTER
++#define POINTER .long
++#endif
++#ifndef FLAGS
++#define FLAGS .long
++#endif
++#ifndef PAD
++#define PAD
++#endif
++#endif
++#ifndef SYM
++#define SYM(x)x
++#endif
++#ifndef ALIGN2
++#define ALIGN2 ALIGN1
++#endif
++#ifndef ALIGN3
++#define ALIGN3
++#endif
++#ifndef SECTION1
++#define SECTION1(x).section .gnu.linkonce.d.rel.ro.x,"aw",@progbits
++#endif
++#ifndef SECTION2
++#define SECTION2(x)SECTION1(x)
++#endif
++#ifndef SECTION3
++#define SECTION3(x).section .gnu.linkonce.r.x,"a",@progbits
++#endif
++#ifndef STRING
++#define STRING .string
++#endif
++
++ .weak SYM(_ZTIPKn)
++ SECTION1(_ZTIPKn)
++ ALIGN1
++ .type SYM(_ZTIPKn), @object
++ .size SYM(_ZTIPKn), SIZE1
++_ZTIPKn:
++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF
++ POINTER SYM(_ZTSPKn)
++ FLAGS 1
++ PAD
++ POINTER SYM(_ZTIn)
++ .weak SYM(_ZTIPn)
++ SECTION1(_ZTIPn)
++ ALIGN1
++ .type SYM(_ZTIPn), @object
++ .size SYM(_ZTIPn), SIZE1
++_ZTIPn:
++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF
++ POINTER SYM(_ZTSPn)
++ FLAGS 0
++ PAD
++ POINTER SYM(_ZTIn)
++ .weak SYM(_ZTIn)
++ SECTION2(_ZTIn)
++ ALIGN2
++ .type SYM(_ZTIn), @object
++ .size SYM(_ZTIn), SIZE2
++_ZTIn:
++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF
++ POINTER SYM(_ZTSn)
++ .weak SYM(_ZTIPKo)
++ SECTION1(_ZTIPKo)
++ ALIGN1
++ .type SYM(_ZTIPKo), @object
++ .size SYM(_ZTIPKo), SIZE1
++_ZTIPKo:
++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF
++ POINTER SYM(_ZTSPKo)
++ FLAGS 1
++ PAD
++ POINTER SYM(_ZTIo)
++ .weak SYM(_ZTIPo)
++ SECTION1(_ZTIPo)
++ ALIGN1
++ .type SYM(_ZTIPo), @object
++ .size SYM(_ZTIPo), SIZE1
++_ZTIPo:
++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF
++ POINTER SYM(_ZTSPo)
++ FLAGS 0
++ PAD
++ POINTER SYM(_ZTIo)
++ .weak SYM(_ZTIo)
++ SECTION2(_ZTIo)
++ ALIGN2
++ .type SYM(_ZTIo), @object
++ .size SYM(_ZTIo), SIZE2
++_ZTIo:
++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF
++ POINTER SYM(_ZTSo)
++ .weak SYM(_ZTSPKn)
++ .hidden SYM(_ZTSPKn)
++ SECTION3(_ZTSPKn)
++ ALIGN3
++ .type SYM(_ZTSPKn), @object
++ .size SYM(_ZTSPKn), 4
++_ZTSPKn:
++ STRING "PKn"
++ .weak SYM(_ZTSPn)
++ .hidden SYM(_ZTSPn)
++ SECTION3(_ZTSPn)
++ ALIGN3
++ .type SYM(_ZTSPn), @object
++ .size SYM(_ZTSPn), 3
++_ZTSPn:
++ STRING "Pn"
++ .weak SYM(_ZTSn)
++ .hidden SYM(_ZTSn)
++ SECTION3(_ZTSn)
++ ALIGN3
++ .type SYM(_ZTSn), @object
++ .size SYM(_ZTSn), 2
++_ZTSn:
++ STRING "n"
++ .weak SYM(_ZTSPKo)
++ .hidden SYM(_ZTSPKo)
++ SECTION3(_ZTSPKo)
++ ALIGN3
++ .type SYM(_ZTSPKo), @object
++ .size SYM(_ZTSPKo), 4
++_ZTSPKo:
++ STRING "PKo"
++ .weak SYM(_ZTSPo)
++ .hidden SYM(_ZTSPo)
++ SECTION3(_ZTSPo)
++ ALIGN3
++ .type SYM(_ZTSPo), @object
++ .size SYM(_ZTSPo), 3
++_ZTSPo:
++ STRING "Po"
++ .weak SYM(_ZTSo)
++ .hidden SYM(_ZTSo)
++ SECTION3(_ZTSo)
++ ALIGN3
++ .type SYM(_ZTSo), @object
++ .size SYM(_ZTSo), 2
++_ZTSo:
++ STRING "o"
++#endif
++ .section .note.GNU-stack,"",@progbits
+--- libstdc++-v3/src/nonshared98/wlocale-inst.cc.jj 2014-05-15 15:53:13.156791007 +0200
++++ libstdc++-v3/src/nonshared98/wlocale-inst.cc 2014-05-15 15:53:13.156791007 +0200
+@@ -0,0 +1,28 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++#define C wchar_t
++#include "locale-inst.cc"
++#endif
+--- libstdc++-v3/src/nonshared98/compatibility-debug_list-2.cc.jj 2014-05-15 15:53:13.156791007 +0200
++++ libstdc++-v3/src/nonshared98/compatibility-debug_list-2.cc 2014-05-15 15:53:13.156791007 +0200
+@@ -0,0 +1,23 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../c++98/compatibility-debug_list-2.cc"
+--- libstdc++-v3/src/nonshared98/streambuf-inst.cc.jj 2014-05-15 15:53:13.156791007 +0200
++++ libstdc++-v3/src/nonshared98/streambuf-inst.cc 2014-05-15 15:53:13.156791007 +0200
+@@ -0,0 +1,36 @@
++// Copyright (C) 1997-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++#include
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++
++ template void basic_streambuf::__safe_gbump(std::streamsize);
++ template void basic_streambuf::__safe_pbump(std::streamsize);
++#ifdef _GLIBCXX_USE_WCHAR_T
++ template void basic_streambuf::__safe_gbump(std::streamsize);
++ template void basic_streambuf::__safe_pbump(std::streamsize);
++#endif
++
++}
+--- libstdc++-v3/src/nonshared98/list_associated-2.cc.jj 2014-05-15 15:53:13.161791302 +0200
++++ libstdc++-v3/src/nonshared98/list_associated-2.cc 2014-05-15 15:53:13.161791302 +0200
+@@ -0,0 +1,23 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../c++98/list_associated-2.cc"
+--- libstdc++-v3/src/nonshared98/list.cc.jj 2014-05-15 15:53:13.161791302 +0200
++++ libstdc++-v3/src/nonshared98/list.cc 2014-05-15 15:53:13.161791302 +0200
+@@ -0,0 +1,23 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include "../c++98/list.cc"
+--- libstdc++-v3/src/nonshared98/snprintf_lite-inst.cc.jj 2014-05-15 16:06:46.465470137 +0200
++++ libstdc++-v3/src/nonshared98/snprintf_lite-inst.cc 2014-05-15 16:23:01.509392006 +0200
+@@ -0,0 +1,41 @@
++// Copyright (C) 2012-2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library 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.
++
++// This library 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.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// .
++
++#include
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++ template
++ int
++ __int_to_char(char*,
++#ifdef _GLIBCXX_USE_LONG_LONG
++ unsigned long long,
++#else
++ unsigned long,
++#endif
++ const char*, ios_base::fmtflags, bool);
++}
++#ifdef _GLIBCXX_USE_LONG_LONG
++asm (".hidden _ZSt13__int_to_charIcyEiPT_T0_PKS0_St13_Ios_Fmtflagsb");
++#else
++asm (".hidden _ZSt13__int_to_charIcmEiPT_T0_PKS0_St13_Ios_Fmtflagsb");
++#endif
+--- libstdc++-v3/src/Makefile.in.jj 2014-05-13 10:30:38.315053669 +0200
++++ libstdc++-v3/src/Makefile.in 2014-05-15 16:13:18.761387653 +0200
+@@ -87,7 +87,7 @@ am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+ am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
+-LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
++LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
+ am__DEPENDENCIES_1 =
+ @GLIBCXX_LDBL_COMPAT_TRUE@am__objects_1 = compatibility-ldbl.lo
+ am__objects_2 = compatibility.lo compatibility-debug_list.lo \
+@@ -97,13 +97,29 @@ am__objects_3 = compatibility-c++0x.lo c
+ compatibility-condvar.lo
+ am_libstdc___la_OBJECTS = $(am__objects_2) $(am__objects_3)
+ libstdc___la_OBJECTS = $(am_libstdc___la_OBJECTS)
++am_libstdc___nonshared44_la_OBJECTS =
++libstdc___nonshared44_la_OBJECTS = \
++ $(am_libstdc___nonshared44_la_OBJECTS)
++am_libstdc___nonshared48_la_OBJECTS =
++libstdc___nonshared48_la_OBJECTS = \
++ $(am_libstdc___nonshared48_la_OBJECTS)
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+ depcomp =
+ am__depfiles_maybe =
+ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+ CXXLD = $(CXX)
+-SOURCES = $(libstdc___la_SOURCES)
++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
++ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++CCLD = $(CC)
++LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
++ $(LDFLAGS) -o $@
++SOURCES = $(libstdc___la_SOURCES) $(libstdc___nonshared44_la_SOURCES) \
++ $(libstdc___nonshared48_la_SOURCES)
+ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+@@ -135,6 +151,8 @@ AWK = @AWK@
+ BASIC_FILE_CC = @BASIC_FILE_CC@
+ BASIC_FILE_H = @BASIC_FILE_H@
+ CC = @CC@
++CCAS = @CCAS@
++CCASFLAGS = @CCASFLAGS@
+ CCODECVT_CC = @CCODECVT_CC@
+ CCOLLATE_CC = @CCOLLATE_CC@
+ CCTYPE_CC = @CCTYPE_CC@
+@@ -339,15 +357,34 @@ WARN_CXXFLAGS = \
+
+ # -I/-D flags to pass when compiling.
+ AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
+-SUBDIRS = c++98 c++11
++SUBDIRS = c++98 c++11 nonshared98 nonshared11
+
+ # Cross compiler support.
+ toolexeclib_LTLIBRARIES = libstdc++.la
++noinst_LTLIBRARIES = libstdc++_nonshared44.la libstdc++_nonshared48.la
+ @GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources =
+ @GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc
+ parallel_compat_sources = \
+ compatibility-parallel_list.cc compatibility-parallel_list-2.cc
+
++libstdc___nonshared44_la_SOURCES =
++libstdc___nonshared44_la_LIBADD = \
++ $(top_builddir)/src/nonshared98/libnonshared98convenience44.la \
++ $(top_builddir)/src/nonshared11/libnonshared11convenience44.la
++
++libstdc___nonshared44_la_DEPENDENCIES = \
++ $(top_builddir)/src/nonshared98/libnonshared98convenience44.la \
++ $(top_builddir)/src/nonshared11/libnonshared11convenience44.la
++
++libstdc___nonshared48_la_SOURCES =
++libstdc___nonshared48_la_LIBADD = \
++ $(top_builddir)/src/nonshared98/libnonshared98convenience48.la \
++ $(top_builddir)/src/nonshared11/libnonshared11convenience48.la
++
++libstdc___nonshared48_la_DEPENDENCIES = \
++ $(top_builddir)/src/nonshared98/libnonshared98convenience48.la \
++ $(top_builddir)/src/nonshared11/libnonshared11convenience48.la
++
+ cxx98_sources = \
+ compatibility.cc \
+ compatibility-debug_list.cc \
+@@ -518,6 +555,15 @@ $(top_srcdir)/configure: @MAINTAINER_MOD
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(am__aclocal_m4_deps):
++
++clean-noinstLTLIBRARIES:
++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
++ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
++ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
++ test "$$dir" != "$$p" || dir=.; \
++ echo "rm -f \"$${dir}/so_locations\""; \
++ rm -f "$${dir}/so_locations"; \
++ done
+ install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(toolexeclibdir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)"
+@@ -551,6 +597,10 @@ clean-toolexeclibLTLIBRARIES:
+ done
+ libstdc++.la: $(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES)
+ $(libstdc___la_LINK) -rpath $(toolexeclibdir) $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) $(LIBS)
++libstdc++_nonshared44.la: $(libstdc___nonshared44_la_OBJECTS) $(libstdc___nonshared44_la_DEPENDENCIES)
++ $(LINK) $(libstdc___nonshared44_la_OBJECTS) $(libstdc___nonshared44_la_LIBADD) $(LIBS)
++libstdc++_nonshared48.la: $(libstdc___nonshared48_la_OBJECTS) $(libstdc___nonshared48_la_DEPENDENCIES)
++ $(LINK) $(libstdc___nonshared48_la_OBJECTS) $(libstdc___nonshared48_la_LIBADD) $(LIBS)
+
+ mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+@@ -744,7 +794,8 @@ maintainer-clean-generic:
+ clean: clean-recursive
+
+ clean-am: clean-generic clean-libtool clean-local \
+- clean-toolexeclibLTLIBRARIES mostlyclean-am
++ clean-noinstLTLIBRARIES clean-toolexeclibLTLIBRARIES \
++ mostlyclean-am
+
+ distclean: distclean-recursive
+ -rm -f Makefile
+@@ -815,19 +866,19 @@ uninstall-am: uninstall-toolexeclibLTLIB
+
+ .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am all-local check check-am clean clean-generic \
+- clean-libtool clean-local clean-toolexeclibLTLIBRARIES ctags \
+- ctags-recursive distclean distclean-compile distclean-generic \
+- distclean-libtool distclean-tags dvi dvi-am html html-am info \
+- info-am install install-am install-data install-data-am \
+- install-data-local install-dvi install-dvi-am install-exec \
+- install-exec-am install-html install-html-am install-info \
+- install-info-am install-man install-pdf install-pdf-am \
+- install-ps install-ps-am install-strip \
+- install-toolexeclibLTLIBRARIES installcheck installcheck-am \
+- installdirs installdirs-am maintainer-clean \
+- maintainer-clean-generic mostlyclean mostlyclean-compile \
+- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+- tags tags-recursive uninstall uninstall-am \
++ clean-libtool clean-local clean-noinstLTLIBRARIES \
++ clean-toolexeclibLTLIBRARIES ctags ctags-recursive distclean \
++ distclean-compile distclean-generic distclean-libtool \
++ distclean-tags dvi dvi-am html html-am info info-am install \
++ install-am install-data install-data-am install-data-local \
++ install-dvi install-dvi-am install-exec install-exec-am \
++ install-html install-html-am install-info install-info-am \
++ install-man install-pdf install-pdf-am install-ps \
++ install-ps-am install-strip install-toolexeclibLTLIBRARIES \
++ installcheck installcheck-am installdirs installdirs-am \
++ maintainer-clean maintainer-clean-generic mostlyclean \
++ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
++ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+ uninstall-toolexeclibLTLIBRARIES
+
+
+--- libstdc++-v3/src/shared/hashtable-aux.cc.jj 2014-05-13 10:30:38.316053664 +0200
++++ libstdc++-v3/src/shared/hashtable-aux.cc 2014-05-15 15:53:13.165791498 +0200
+@@ -22,6 +22,9 @@
+ // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ // .
+
++#ifndef HASHTABLE_AUX_CC
++#define HASHTABLE_AUX_CC 1
++
+ namespace __detail
+ {
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+@@ -91,3 +94,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ };
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace __detail
++
++#endif
+--- libstdc++-v3/acinclude.m4.jj 2014-05-13 10:30:38.312053685 +0200
++++ libstdc++-v3/acinclude.m4 2014-05-15 15:53:13.179792001 +0200
+@@ -49,7 +49,7 @@ AC_DEFUN([GLIBCXX_CONFIGURE], [
+ # Keep these sync'd with the list in Makefile.am. The first provides an
+ # expandable list at autoconf time; the second provides an expandable list
+ # (i.e., shell variable) at configure time.
+- m4_define([glibcxx_SUBDIRS],[include libsupc++ python src src/c++98 src/c++11 doc po testsuite])
++ m4_define([glibcxx_SUBDIRS],[include libsupc++ python src src/c++98 src/c++11 src/nonshared98 src/nonshared11 doc po testsuite])
+ SUBDIRS='glibcxx_SUBDIRS'
+
+ # These need to be absolute paths, yet at the same time need to
+--- libstdc++-v3/configure.ac.jj 2014-05-13 10:30:38.200054276 +0200
++++ libstdc++-v3/configure.ac 2014-05-15 15:53:13.195792652 +0200
+@@ -483,6 +483,11 @@ GLIBCXX_EXPORT_INSTALL_INFO
+ GLIBCXX_EXPORT_INCLUDES
+ GLIBCXX_EXPORT_FLAGS
+
++CCAS='$(CXX)'
++CCASFLAGS='$(CXXFLAGS)'
++AC_SUBST(CCAS)
++AC_SUBST(CCASFLAGS)
++
+ dnl In autoconf 2.5x, AC_OUTPUT is replaced by four AC_CONFIG_* macros,
+ dnl which can all be called multiple times as needed, plus one (different)
+ dnl AC_OUTPUT macro. This one lists the files to be created:
+--- libstdc++-v3/configure.jj 2014-05-13 10:30:38.314053675 +0200
++++ libstdc++-v3/configure 2014-05-15 15:53:13.234792687 +0200
+@@ -602,6 +602,8 @@ ac_subst_vars='am__EXEEXT_FALSE
+ am__EXEEXT_TRUE
+ LTLIBOBJS
+ LIBOBJS
++CCASFLAGS
++CCAS
+ WARN_FLAGS
+ OPTIMIZE_CXXFLAGS
+ TOPLEVEL_INCLUDES
+@@ -4884,7 +4886,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
+ # expandable list at autoconf time; the second provides an expandable list
+ # (i.e., shell variable) at configure time.
+
+- SUBDIRS='include libsupc++ python src src/c++98 src/c++11 doc po testsuite'
++ SUBDIRS='include libsupc++ python src src/c++98 src/c++11 src/nonshared98 src/nonshared11 doc po testsuite'
+
+ # These need to be absolute paths, yet at the same time need to
+ # canonicalize only relative paths, because then amd will not unmount
+@@ -11526,7 +11528,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11529 "configure"
++#line 11531 "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11632,7 +11634,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11635 "configure"
++#line 11637 "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -15052,7 +15054,7 @@ fi
+ #
+ # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style.
+ cat > conftest.$ac_ext << EOF
+-#line 15055 "configure"
++#line 15057 "configure"
+ struct S { ~S(); };
+ void bar();
+ void foo()
+@@ -15404,7 +15406,7 @@ $as_echo "$glibcxx_cv_atomic_long_long"
+ # Fake what AC_TRY_COMPILE does.
+
+ cat > conftest.$ac_ext << EOF
+-#line 15407 "configure"
++#line 15409 "configure"
+ int main()
+ {
+ typedef bool atomic_type;
+@@ -15439,7 +15441,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6;
+ rm -f conftest*
+
+ cat > conftest.$ac_ext << EOF
+-#line 15442 "configure"
++#line 15444 "configure"
+ int main()
+ {
+ typedef short atomic_type;
+@@ -15474,7 +15476,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6;
+ rm -f conftest*
+
+ cat > conftest.$ac_ext << EOF
+-#line 15477 "configure"
++#line 15479 "configure"
+ int main()
+ {
+ // NB: _Atomic_word not necessarily int.
+@@ -15510,7 +15512,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
+ rm -f conftest*
+
+ cat > conftest.$ac_ext << EOF
+-#line 15513 "configure"
++#line 15515 "configure"
+ int main()
+ {
+ typedef long long atomic_type;
+@@ -15589,7 +15591,7 @@ $as_echo "$as_me: WARNING: Performance o
+ # unnecessary for this test.
+
+ cat > conftest.$ac_ext << EOF
+-#line 15592 "configure"
++#line 15594 "configure"
+ int main()
+ {
+ _Decimal32 d1;
+@@ -15631,7 +15633,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ # unnecessary for this test.
+
+ cat > conftest.$ac_ext << EOF
+-#line 15634 "configure"
++#line 15636 "configure"
+ template
+ struct same
+ { typedef T2 type; };
+@@ -15665,7 +15667,7 @@ $as_echo "$enable_int128" >&6; }
+ rm -f conftest*
+
+ cat > conftest.$ac_ext << EOF
+-#line 15668 "configure"
++#line 15670 "configure"
+ template
+ struct same
+ { typedef T2 type; };
+@@ -79530,6 +79532,11 @@ $as_echo "$gxx_include_dir" >&6; }
+
+
+
++CCAS='$(CXX)'
++CCASFLAGS='$(CXXFLAGS)'
++
++
++
+ ac_config_files="$ac_config_files Makefile"
+
+ ac_config_files="$ac_config_files scripts/testsuite_flags"
+@@ -79547,7 +79554,7 @@ ac_config_files="$ac_config_files doc/xs
+ # append it here. Only modify Makefiles that have just been created.
+ #
+ # Also, get rid of this simulated-VPATH thing that automake does.
+-ac_config_files="$ac_config_files include/Makefile libsupc++/Makefile python/Makefile src/Makefile src/c++98/Makefile src/c++11/Makefile doc/Makefile po/Makefile testsuite/Makefile"
++ac_config_files="$ac_config_files include/Makefile libsupc++/Makefile python/Makefile src/Makefile src/c++98/Makefile src/c++11/Makefile src/nonshared98/Makefile src/nonshared11/Makefile doc/Makefile po/Makefile testsuite/Makefile"
+
+
+ ac_config_commands="$ac_config_commands generate-headers"
+@@ -80756,6 +80763,8 @@ do
+ "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+ "src/c++98/Makefile") CONFIG_FILES="$CONFIG_FILES src/c++98/Makefile" ;;
+ "src/c++11/Makefile") CONFIG_FILES="$CONFIG_FILES src/c++11/Makefile" ;;
++ "src/nonshared98/Makefile") CONFIG_FILES="$CONFIG_FILES src/nonshared98/Makefile" ;;
++ "src/nonshared11/Makefile") CONFIG_FILES="$CONFIG_FILES src/nonshared11/Makefile" ;;
+ "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+ "po/Makefile") CONFIG_FILES="$CONFIG_FILES po/Makefile" ;;
+ "testsuite/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/Makefile" ;;
+@@ -82595,6 +82604,28 @@ _EOF
+ s!`test -f '$<' || echo '$(srcdir)/'`!!
+ _EOF
+ sed -f vpsed$$ $ac_file > tmp$$
++ mv tmp$$ $ac_file
++ rm vpsed$$
++ echo 'MULTISUBDIR =' >> $ac_file
++ ml_norecursion=yes
++ . ${multi_basedir}/config-ml.in
++ { ml_norecursion=; unset ml_norecursion;}
++ ;;
++ "src/nonshared98/Makefile":F) cat > vpsed$$ << \_EOF
++s!`test -f '$<' || echo '$(srcdir)/'`!!
++_EOF
++ sed -f vpsed$$ $ac_file > tmp$$
++ mv tmp$$ $ac_file
++ rm vpsed$$
++ echo 'MULTISUBDIR =' >> $ac_file
++ ml_norecursion=yes
++ . ${multi_basedir}/config-ml.in
++ { ml_norecursion=; unset ml_norecursion;}
++ ;;
++ "src/nonshared11/Makefile":F) cat > vpsed$$ << \_EOF
++s!`test -f '$<' || echo '$(srcdir)/'`!!
++_EOF
++ sed -f vpsed$$ $ac_file > tmp$$
+ mv tmp$$ $ac_file
+ rm vpsed$$
+ echo 'MULTISUBDIR =' >> $ac_file
diff --git a/SOURCES/gcc49-libstdc++-docs.patch b/SOURCES/gcc49-libstdc++-docs.patch
new file mode 100644
index 0000000..2c8c2b8
--- /dev/null
+++ b/SOURCES/gcc49-libstdc++-docs.patch
@@ -0,0 +1,26 @@
+--- libstdc++-v3/doc/html/index.html.jj 2011-01-03 12:53:21.282829010 +0100
++++ libstdc++-v3/doc/html/index.html 2011-01-04 18:06:28.999851145 +0100
+@@ -5,6 +5,8 @@
+ FSF
+
+
++ Release 4.9.1
++
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation
+ License, Version 1.2 or any later version published by the
+--- libstdc++-v3/doc/html/api.html.jj 2011-01-03 12:53:21.000000000 +0100
++++ libstdc++-v3/doc/html/api.html 2011-01-04 18:12:01.672757784 +0100
+@@ -18,8 +18,11 @@
+ member functions for the library classes, finding out what is in a
+ particular include file, looking at inheritance diagrams, etc.
+
+- The API documentation, rendered into HTML, can be viewed online:
++ The API documentation, rendered into HTML, can be viewed here:
+
++ for the 4.9.1 release, local
++
++
+ for the 3.4 release
+
+
diff --git a/SOURCES/gcc49-libstdc++44-xfail.patch b/SOURCES/gcc49-libstdc++44-xfail.patch
new file mode 100644
index 0000000..0a84451
--- /dev/null
+++ b/SOURCES/gcc49-libstdc++44-xfail.patch
@@ -0,0 +1,190 @@
+--- libstdc++-v3/testsuite/22_locale/locale/cons/40184.cc.jj 2014-04-11 14:52:06.733884798 +0200
++++ libstdc++-v3/testsuite/22_locale/locale/cons/40184.cc 2014-05-10 12:29:51.779887325 +0200
+@@ -1,4 +1,6 @@
+ // { dg-require-namedlocale "ja_JP.eucjp" }
++// pr40184 fix not backported to base (locales with broken facets)
++// { dg-do run { xfail *-*-* } }
+
+ // Copyright (C) 2009-2014 Free Software Foundation, Inc.
+ //
+--- libstdc++-v3/testsuite/22_locale/time_get/get_date/char/26701.cc.jj 2014-04-11 14:52:06.680885075 +0200
++++ libstdc++-v3/testsuite/22_locale/time_get/get_date/char/26701.cc 2014-05-10 12:29:51.792886917 +0200
+@@ -1,4 +1,6 @@
+ // { dg-require-namedlocale "en_GB" }
++// pr26701 fix not backported to base (parsing of en_GB date)
++// { dg-do run { xfail *-*-* } }
+
+ // 2010-01-06 Paolo Carlini
+
+--- libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/26701.cc.jj 2014-04-11 14:52:06.674885106 +0200
++++ libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/26701.cc 2014-05-10 12:29:51.792886917 +0200
+@@ -1,4 +1,6 @@
+ // { dg-require-namedlocale "en_GB" }
++// pr26701 fix not backported to base (parsing of en_GB date)
++// { dg-do run { xfail *-*-* } }
+
+ // 2010-01-06 Paolo Carlini
+
+--- libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc.jj 2014-04-11 14:52:06.645885257 +0200
++++ libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc 2014-05-10 12:29:51.802886712 +0200
+@@ -1,4 +1,6 @@
+ // { dg-require-namedlocale "ru_RU.ISO-8859-5" }
++// pr38081 fix not backported to base (parsing weekday names)
++// { dg-do run { xfail *-*-* } }
+
+ // Copyright (C) 2010-2014 Free Software Foundation, Inc.
+ //
+--- libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc.jj 2014-04-11 14:52:06.646885252 +0200
++++ libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc 2014-05-10 12:29:51.802886712 +0200
+@@ -1,4 +1,6 @@
+ // { dg-require-namedlocale "ru_RU.UTF8" }
++// pr38081 fix not backported to base (parsing weekday names)
++// { dg-do run { xfail *-*-* } }
+
+ // 2010-01-05 Paolo Carlini
+
+--- libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/4.cc.jj 2014-04-11 14:52:04.949894106 +0200
++++ libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/4.cc 2014-05-10 12:29:51.807886709 +0200
+@@ -1,4 +1,6 @@
+ // { dg-require-fileio "" }
++// pr45628 fix not backported to base (seek 0 shouldn't flush)
++// { dg-do run { xfail *-*-* } }
+
+ // Copyright (C) 2010-2014 Free Software Foundation, Inc.
+ //
+--- libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/45628-1.cc.jj 2014-05-10 12:29:51.808886705 +0200
++++ libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/45628-1.cc 2014-05-10 12:31:51.652261219 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// pr45628 fix not backported to base (seek 0 shouldn't flush)
++
+ // Copyright (C) 2010-2014 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library. This library is free
+--- libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc.jj 2014-04-11 14:52:04.941894148 +0200
++++ libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc 2014-05-10 12:29:51.808886705 +0200
+@@ -1,4 +1,6 @@
+ // { dg-require-fileio "" }
++// pr45628 fix not backported to base (seek 0 should not flush)
++// { dg-do run { xfail *-*-* } }
+
+ // Copyright (C) 2010-2014 Free Software Foundation, Inc.
+ //
+--- libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc.jj 2014-04-11 14:52:04.771895035 +0200
++++ libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc 2014-05-10 12:29:51.819886643 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// dr696 fix not backported to base (handling of overflow when reading number)
++
+ // 1999-04-12 bkoz
+
+ // Copyright (C) 1999-2014 Free Software Foundation, Inc.
+--- libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/dr696.cc.jj 2014-04-11 14:52:04.770895040 +0200
++++ libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/dr696.cc 2014-05-10 12:29:51.819886643 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// dr696 fix not backported to base (handling of overflow when reading number)
++
+ // 2009-07-15 Paolo Carlini
+ //
+ // Copyright (C) 2009-2014 Free Software Foundation, Inc.
+--- libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/13.cc.jj 2014-05-10 12:29:51.829886586 +0200
++++ libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/13.cc 2014-05-10 12:32:23.160099254 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// dr696 fix not backported to base (handling of overflow when reading number)
++
+ // Copyright (C) 2004-2014 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library. This library is free
+--- libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/dr696.cc.jj 2014-04-11 14:52:04.762895082 +0200
++++ libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/dr696.cc 2014-05-10 12:29:51.829886586 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// dr696 fix not backported to base (handling of overflow when reading number)
++
+ // 2009-07-15 Paolo Carlini
+ //
+ // Copyright (C) 2009-2014 Free Software Foundation, Inc.
+--- libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/26211.cc.jj 2014-04-11 14:52:04.735895223 +0200
++++ libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/26211.cc 2014-05-10 12:29:51.836886549 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// pr26211 fix not backported to base (tellg/seekg should construct a sentry)
++
+ // 2010-11-18 Paolo Carlini
+
+ // Copyright (C) 2010-2014 Free Software Foundation, Inc.
+--- libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/26211.cc.jj 2014-04-11 14:52:04.731895243 +0200
++++ libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/26211.cc 2014-05-10 12:29:51.836886549 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// pr26211 fix not backported to base (tellg/seekg should construct a sentry)
++
+ // 2010-11-18 Paolo Carlini
+
+ // Copyright (C) 2010-2014 Free Software Foundation, Inc.
+--- libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/26211.cc.jj 2014-04-11 14:52:04.779894993 +0200
++++ libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/26211.cc 2014-05-10 12:29:51.836886549 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// pr26211 fix not backported to base (tellg/seekg should construct a sentry)
++
+ // 2010-11-18 Paolo Carlini
+
+ // Copyright (C) 2010-2014 Free Software Foundation, Inc.
+--- libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/26211.cc.jj 2014-04-11 14:52:04.775895014 +0200
++++ libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/26211.cc 2014-05-10 12:29:51.837886543 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// pr26211 fix not backported to base (tellg/seekg should construct a sentry)
++
+ // 2010-11-18 Paolo Carlini
+
+ // Copyright (C) 2010-2014 Free Software Foundation, Inc.
+--- libstdc++-v3/testsuite/27_io/objects/char/41037.cc.jj 2014-05-10 12:29:51.848886483 +0200
++++ libstdc++-v3/testsuite/27_io/objects/char/41037.cc 2014-05-10 12:30:52.480567953 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// pr41037 fix not backported to base (flags on cerr)
++
+ // Copyright (C) 2009-2014 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library. This library is free
+--- libstdc++-v3/testsuite/27_io/objects/wchar_t/41037.cc.jj 2014-05-10 12:29:51.856886441 +0200
++++ libstdc++-v3/testsuite/27_io/objects/wchar_t/41037.cc 2014-05-10 12:31:20.274421862 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// pr26211 fix not backported to base (tellg/seekg should construct a sentry)
++
+ // Copyright (C) 2009-2014 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library. This library is free
+--- libstdc++-v3/testsuite/abi/demangle/regression/cw-13.cc.jj 2014-04-11 14:52:05.388891816 +0200
++++ libstdc++-v3/testsuite/abi/demangle/regression/cw-13.cc 2014-05-10 12:29:51.868886376 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// pr42670 fix not backported to base (partial demangling of global ctor fn)
++
+ // 2003-02-26 Carlo Wood
+
+ // Copyright (C) 2003-2014 Free Software Foundation, Inc.
+--- libstdc++-v3/testsuite/abi/demangle/regression/cw-16.cc.jj 2014-04-11 14:52:05.387891821 +0200
++++ libstdc++-v3/testsuite/abi/demangle/regression/cw-16.cc 2014-05-10 12:29:51.868886376 +0200
+@@ -1,3 +1,6 @@
++// { dg-do run { xfail *-*-* } }
++// pr37376 fix not backported to base ((42) + 2 changed to (42)+(2))
++
+ // 2003-11-07 Carlo Wood
+
+ // Copyright (C) 2003-2014 Free Software Foundation, Inc.
+--- libstdc++-v3/testsuite/libstdc++-abi/abi.exp.jj 2014-04-11 14:52:06.793884485 +0200
++++ libstdc++-v3/testsuite/libstdc++-abi/abi.exp 2014-05-10 12:29:51.868886376 +0200
+@@ -61,4 +61,7 @@ remote_download "target" "current_symbol
+ set result [${tool}_load "./abi_check" \
+ [list "--check-verbose" "current_symbols.txt" \
+ "baseline_symbols.txt"]]
++# This is an artifact of running the current testsuite against the old
++# system libstdc++
++setup_xfail *-*-*
+ [lindex $result 0] "libstdc++-abi/abi_check"
diff --git a/SOURCES/gcc49-libtool-no-rpath.patch b/SOURCES/gcc49-libtool-no-rpath.patch
new file mode 100644
index 0000000..466c661
--- /dev/null
+++ b/SOURCES/gcc49-libtool-no-rpath.patch
@@ -0,0 +1,27 @@
+libtool sucks.
+--- ltmain.sh.jj 2007-12-07 14:53:21.000000000 +0100
++++ ltmain.sh 2008-09-05 21:51:48.000000000 +0200
+@@ -5394,6 +5394,7 @@ EOF
+ rpath="$finalize_rpath"
+ test "$mode" != relink && rpath="$compile_rpath$rpath"
+ for libdir in $rpath; do
++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+@@ -6071,6 +6072,7 @@ EOF
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+@@ -6120,6 +6122,7 @@ EOF
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
diff --git a/SOURCES/gcc49-no-add-needed.patch b/SOURCES/gcc49-no-add-needed.patch
new file mode 100644
index 0000000..b6ca777
--- /dev/null
+++ b/SOURCES/gcc49-no-add-needed.patch
@@ -0,0 +1,50 @@
+2010-02-08 Roland McGrath
+
+ * config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the
+ linker.
+ * config/gnu-user.h (LINK_EH_SPEC): Likewise.
+ * config/alpha/elf.h (LINK_EH_SPEC): Likewise.
+ * config/ia64/linux.h (LINK_EH_SPEC): Likewise.
+
+--- gcc/config/alpha/elf.h.jj 2011-01-03 12:52:31.118056764 +0100
++++ gcc/config/alpha/elf.h 2011-01-04 18:14:10.931874160 +0100
+@@ -165,5 +165,5 @@ extern int alpha_this_gpdisp_sequence_nu
+ I imagine that other systems will catch up. In the meantime, it
+ doesn't harm to make sure that the data exists to be used later. */
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
+ #endif
+--- gcc/config/ia64/linux.h.jj 2011-01-03 13:02:11.462994522 +0100
++++ gcc/config/ia64/linux.h 2011-01-04 18:14:10.931874160 +0100
+@@ -77,7 +77,7 @@ do { \
+ Signalize that because we have fde-glibc, we don't need all C shared libs
+ linked against -lgcc_s. */
+ #undef LINK_EH_SPEC
+-#define LINK_EH_SPEC ""
++#define LINK_EH_SPEC "--no-add-needed "
+
+ /* Put all *tf routines in libgcc. */
+ #undef LIBGCC2_HAS_TF_MODE
+--- gcc/config/gnu-user.h.jj 2011-01-03 12:53:03.739057299 +0100
++++ gcc/config/gnu-user.h 2011-01-04 18:14:10.932814884 +0100
+@@ -82,7 +82,7 @@ see the files COPYING3 and COPYING.RUNTI
+ #define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
+
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
+ #endif
+
+ #undef LINK_GCC_C_SEQUENCE_SPEC
+--- gcc/config/rs6000/sysv4.h.jj 2011-01-03 13:02:18.255994215 +0100
++++ gcc/config/rs6000/sysv4.h 2011-01-04 18:14:10.933888871 +0100
+@@ -820,7 +820,7 @@ extern int fixuplabelno;
+ -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
+
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
+ #endif
+
+ #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
diff --git a/SOURCES/gcc49-ppc32-retaddr.patch b/SOURCES/gcc49-ppc32-retaddr.patch
new file mode 100644
index 0000000..7e8eeb5
--- /dev/null
+++ b/SOURCES/gcc49-ppc32-retaddr.patch
@@ -0,0 +1,87 @@
+2005-11-28 Jakub Jelinek
+
+ * config/rs6000/rs6000.c (rs6000_return_addr): If COUNT == 0,
+ read word RETURN_ADDRESS_OFFSET bytes above arg_pointer_rtx
+ instead of doing an extran indirection from frame_pointer_rtx.
+
+ * gcc.dg/20051128-1.c: New test.
+
+--- gcc/config/rs6000/rs6000.c.jj 2005-11-26 14:38:01.000000000 +0100
++++ gcc/config/rs6000/rs6000.c 2005-11-28 20:32:18.000000000 +0100
+@@ -20970,18 +20970,22 @@ rs6000_return_addr (int count, rtx frame
+ if (count != 0
+ || ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN) && flag_pic))
+ {
++ rtx x;
+ cfun->machine->ra_needs_full_frame = 1;
+
+- return
+- gen_rtx_MEM
+- (Pmode,
+- memory_address
+- (Pmode,
+- plus_constant (Pmode,
+- copy_to_reg
+- (gen_rtx_MEM (Pmode,
+- memory_address (Pmode, frame))),
+- RETURN_ADDRESS_OFFSET)));
++ if (count == 0)
++ {
++ gcc_assert (frame == frame_pointer_rtx);
++ x = arg_pointer_rtx;
++ }
++ else
++ {
++ x = memory_address (Pmode, frame);
++ x = copy_to_reg (gen_rtx_MEM (Pmode, x));
++ }
++
++ x = plus_constant (Pmode, x, RETURN_ADDRESS_OFFSET);
++ return gen_rtx_MEM (Pmode, memory_address (Pmode, x));
+ }
+
+ cfun->machine->ra_need_lr = 1;
+--- gcc/testsuite/gcc.dg/20051128-1.c.jj 2005-10-10 11:21:41.096999000 +0200
++++ gcc/testsuite/gcc.dg/20051128-1.c 2005-11-28 12:30:57.000000000 +0100
+@@ -0,0 +1,41 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -fpic" } */
++
++extern void exit (int);
++extern void abort (void);
++
++int b;
++
++struct A
++{
++ void *pad[147];
++ void *ra, *h;
++ long o;
++};
++
++void
++__attribute__((noinline))
++foo (struct A *a, void *x)
++{
++ __builtin_memset (a, 0, sizeof (a));
++ if (!b)
++ exit (0);
++}
++
++void
++__attribute__((noinline))
++bar (void)
++{
++ struct A a;
++
++ __builtin_unwind_init ();
++ foo (&a, __builtin_return_address (0));
++}
++
++int
++main (void)
++{
++ bar ();
++ abort ();
++ return 0;
++}
diff --git a/SOURCES/gcc49-pr38757.patch b/SOURCES/gcc49-pr38757.patch
new file mode 100644
index 0000000..4206584
--- /dev/null
+++ b/SOURCES/gcc49-pr38757.patch
@@ -0,0 +1,106 @@
+2009-03-18 Jakub Jelinek
+
+ PR debug/38757
+ * langhooks.h (struct lang_hooks): Add source_language langhook.
+ * langhooks-def.h (LANG_HOOKS_SOURCE_LANGUAGE): Define to NULL.
+ (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_SOURCE_LANGUAGE.
+ * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
+ also for DW_LANG_{C,C99,ObjC}.
+ (gen_compile_unit_die): Use lang_hooks.source_language () to
+ determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
+c/
+ * c-lang.c (c_source_language): New function.
+ (LANG_HOOKS_SOURCE_LANGUAGE): Define.
+
+--- gcc/langhooks.h.jj 2011-01-03 12:53:05.125745450 +0100
++++ gcc/langhooks.h 2011-01-04 17:59:43.166744926 +0100
+@@ -467,6 +467,10 @@ struct lang_hooks
+ gimplification. */
+ bool deep_unsharing;
+
++ /* Return year of the source language standard version if the FE supports
++ multiple versions of the standard. */
++ int (*source_language) (void);
++
+ /* Whenever you add entries here, make sure you adjust langhooks-def.h
+ and langhooks.c accordingly. */
+ };
+--- gcc/langhooks-def.h.jj 2011-01-03 12:53:05.000000000 +0100
++++ gcc/langhooks-def.h 2011-01-04 18:00:44.858851030 +0100
+@@ -118,6 +118,7 @@ extern void lhd_omp_firstprivatize_type_
+ #define LANG_HOOKS_BLOCK_MAY_FALLTHRU hook_bool_const_tree_true
+ #define LANG_HOOKS_EH_USE_CXA_END_CLEANUP false
+ #define LANG_HOOKS_DEEP_UNSHARING false
++#define LANG_HOOKS_SOURCE_LANGUAGE NULL
+
+ /* Attribute hooks. */
+ #define LANG_HOOKS_ATTRIBUTE_TABLE NULL
+@@ -303,7 +304,8 @@ extern void lhd_end_section (void);
+ LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS, \
+ LANG_HOOKS_BLOCK_MAY_FALLTHRU, \
+ LANG_HOOKS_EH_USE_CXA_END_CLEANUP, \
+- LANG_HOOKS_DEEP_UNSHARING \
++ LANG_HOOKS_DEEP_UNSHARING, \
++ LANG_HOOKS_SOURCE_LANGUAGE \
+ }
+
+ #endif /* GCC_LANG_HOOKS_DEF_H */
+--- gcc/c/c-lang.c.jj 2011-01-03 12:53:05.376056936 +0100
++++ gcc/c/c-lang.c 2011-01-04 17:59:43.167743798 +0100
+@@ -36,6 +36,12 @@ along with GCC; see the file COPYING3.
+
+ enum c_language_kind c_language = clk_c;
+
++static int
++c_source_language (void)
++{
++ return flag_isoc99 ? 1999 : 1989;
++}
++
+ /* Lang hooks common to C and ObjC are declared in c-objc-common.h;
+ consequently, there should be very few hooks below. */
+
+@@ -45,6 +51,8 @@ enum c_language_kind c_language = clk_c;
+ #define LANG_HOOKS_INIT c_objc_common_init
+ #undef LANG_HOOKS_INIT_TS
+ #define LANG_HOOKS_INIT_TS c_common_init_ts
++#undef LANG_HOOKS_SOURCE_LANGUAGE
++#define LANG_HOOKS_SOURCE_LANGUAGE c_source_language
+
+ /* Each front end provides its own lang hook initializer. */
+ struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
+--- gcc/dwarf2out.c.jj 2011-01-03 12:53:05.102056475 +0100
++++ gcc/dwarf2out.c 2011-01-04 18:03:14.534151763 +0100
+@@ -16109,9 +16109,18 @@ add_bit_size_attribute (dw_die_ref die,
+ static inline void
+ add_prototyped_attribute (dw_die_ref die, tree func_type)
+ {
+- if (get_AT_unsigned (comp_unit_die (), DW_AT_language) == DW_LANG_C89
+- && prototype_p (func_type))
+- add_AT_flag (die, DW_AT_prototyped, 1);
++ switch (get_AT_unsigned (comp_unit_die (), DW_AT_language))
++ {
++ case DW_LANG_C:
++ case DW_LANG_C89:
++ case DW_LANG_C99:
++ case DW_LANG_ObjC:
++ if (prototype_p (func_type))
++ add_AT_flag (die, DW_AT_prototyped, 1);
++ break;
++ default:
++ break;
++ }
+ }
+
+ /* Add an 'abstract_origin' attribute below a given DIE. The DIE is found
+@@ -18915,6 +18924,10 @@ gen_compile_unit_die (const char *filena
+ if (strcmp (language_string, "GNU Go") == 0)
+ language = DW_LANG_Go;
+ }
++ else if (strcmp (language_string, "GNU C") == 0
++ && lang_hooks.source_language
++ && lang_hooks.source_language () >= 1999)
++ language = DW_LANG_C99;
+ }
+ /* Use a degraded Fortran setting in strict DWARF2 so is_fortran works. */
+ else if (strcmp (language_string, "GNU Fortran") == 0)
diff --git a/SOURCES/gcc49-pr56493.patch b/SOURCES/gcc49-pr56493.patch
new file mode 100644
index 0000000..87603db
--- /dev/null
+++ b/SOURCES/gcc49-pr56493.patch
@@ -0,0 +1,76 @@
+2013-06-17 Jakub Jelinek
+
+ PR c++/56493
+ * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
+ Handle COMPOUND_EXPR.
+
+ * c-c++-common/pr56493.c: New test.
+
+--- gcc/convert.c.jj 2013-05-13 09:44:53.000000000 +0200
++++ gcc/convert.c 2013-06-16 12:16:13.754108523 +0200
+@@ -95,6 +95,15 @@ convert_to_real (tree type, tree expr)
+ enum built_in_function fcode = builtin_mathfn_code (expr);
+ tree itype = TREE_TYPE (expr);
+
++ if (TREE_CODE (expr) == COMPOUND_EXPR)
++ {
++ tree t = convert_to_real (type, TREE_OPERAND (expr, 1));
++ if (t == TREE_OPERAND (expr, 1))
++ return expr;
++ return build2_loc (EXPR_LOCATION (expr), COMPOUND_EXPR, TREE_TYPE (t),
++ TREE_OPERAND (expr, 0), t);
++ }
++
+ /* Disable until we figure out how to decide whether the functions are
+ present in runtime. */
+ /* Convert (float)sqrt((double)x) where x is float into sqrtf(x) */
+@@ -366,6 +375,15 @@ convert_to_integer (tree type, tree expr
+ return error_mark_node;
+ }
+
++ if (ex_form == COMPOUND_EXPR)
++ {
++ tree t = convert_to_integer (type, TREE_OPERAND (expr, 1));
++ if (t == TREE_OPERAND (expr, 1))
++ return expr;
++ return build2_loc (EXPR_LOCATION (expr), COMPOUND_EXPR, TREE_TYPE (t),
++ TREE_OPERAND (expr, 0), t);
++ }
++
+ /* Convert e.g. (long)round(d) -> lround(d). */
+ /* If we're converting to char, we may encounter differing behavior
+ between converting from double->char vs double->long->char.
+@@ -854,6 +872,14 @@ convert_to_complex (tree type, tree expr
+
+ if (TYPE_MAIN_VARIANT (elt_type) == TYPE_MAIN_VARIANT (subtype))
+ return expr;
++ else if (TREE_CODE (expr) == COMPOUND_EXPR)
++ {
++ tree t = convert_to_complex (type, TREE_OPERAND (expr, 1));
++ if (t == TREE_OPERAND (expr, 1))
++ return expr;
++ return build2_loc (EXPR_LOCATION (expr), COMPOUND_EXPR,
++ TREE_TYPE (t), TREE_OPERAND (expr, 0), t);
++ }
+ else if (TREE_CODE (expr) == COMPLEX_EXPR)
+ return fold_build2 (COMPLEX_EXPR, type,
+ convert (subtype, TREE_OPERAND (expr, 0)),
+--- gcc/testsuite/c-c++-common/pr56493.c.jj 2013-06-17 10:24:36.891659600 +0200
++++ gcc/testsuite/c-c++-common/pr56493.c 2013-06-17 10:24:33.164720149 +0200
+@@ -0,0 +1,16 @@
++/* PR c++/56493 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -fdump-tree-gimple" } */
++
++unsigned long long bar (void);
++int x;
++
++void
++foo (void)
++{
++ x += bar ();
++}
++
++/* Verify we narrow the addition from unsigned long long to unsigned int type. */
++/* { dg-final { scan-tree-dump " (\[a-zA-Z._0-9]*) = \\(unsigned int\\) \[^;\n\r]*;.* (\[a-zA-Z._0-9]*) = \\(unsigned int\\) \[^;\n\r]*;.* = \\1 \\+ \\2;" "gimple" { target { ilp32 || lp64 } } } } */
++/* { dg-final { cleanup-tree-dump "gimple" } } */
diff --git a/SOURCES/gcc49-pr63285.patch b/SOURCES/gcc49-pr63285.patch
new file mode 100644
index 0000000..2216047
--- /dev/null
+++ b/SOURCES/gcc49-pr63285.patch
@@ -0,0 +1,50 @@
+2014-09-18 Vladimir Makarov
+
+ PR debug/63285
+ * haifa-sched.c (schedule_block): Advance cycle at the end of BB
+ if advance != 0.
+
+ * gcc.target/i386/pr63285.c: New test.
+
+--- gcc/haifa-sched.c (revision 215363)
++++ gcc/haifa-sched.c (revision 215364)
+@@ -6473,7 +6473,7 @@ schedule_block (basic_block *target_bb,
+ if (ls.modulo_epilogue)
+ success = true;
+ end_schedule:
+- if (!ls.first_cycle_insn_p)
++ if (!ls.first_cycle_insn_p || advance)
+ advance_one_cycle ();
+ perform_replacements_new_cycle ();
+ if (modulo_ii > 0)
+--- gcc/testsuite/gcc.target/i386/pr63285.c (revision 0)
++++ gcc/testsuite/gcc.target/i386/pr63285.c (revision 215364)
+@@ -0,0 +1,28 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -fcompare-debug" } */
++
++struct S { int a; };
++struct T { int b, c; } a;
++long b;
++int c, d;
++void bar (int, int);
++void baz (void *, int);
++
++void
++foo (struct S *x, int y, int z, void *f, int *p, struct T *e)
++{
++ while (x)
++ {
++ baz (f, &d > p);
++ if (z & 1)
++ bar (f > (void *) &f, z);
++ }
++ if (c)
++ {
++ asm ("" : "+m" (a) : "i" (0));
++ y--;
++ }
++ if (e->b == e->c)
++ c = y;
++ y--;
++}
diff --git a/SOURCES/gcc49-rh1118870.patch b/SOURCES/gcc49-rh1118870.patch
new file mode 100644
index 0000000..9865e72
--- /dev/null
+++ b/SOURCES/gcc49-rh1118870.patch
@@ -0,0 +1,20 @@
+2014-07-23 Jonathan Wakely
+
+ * testsuite/30_threads/condition_variable_any/rh1118870.cc: New test.
+
+--- libstdc++-v3/testsuite/30_threads/condition_variable_any/rh1118870.cc
++++ libstdc++-v3/testsuite/30_threads/condition_variable_any/rh1118870.cc
+@@ -0,0 +1,13 @@
++// { dg-options " -std=gnu++11 -pthread" }
++#include
++#include
++
++int main()
++{
++ const size_t sz = sizeof(std::condition_variable_any);
++ char garbage[sz];
++ memset(garbage, 0xff, sz);
++ auto cond = new ((void*)garbage) std::condition_variable_any();
++ cond->notify_all();
++ cond->~condition_variable_any();
++}
diff --git a/SOURCES/gcc49-rh330771.patch b/SOURCES/gcc49-rh330771.patch
new file mode 100644
index 0000000..102730f
--- /dev/null
+++ b/SOURCES/gcc49-rh330771.patch
@@ -0,0 +1,27 @@
+2007-10-16 Jakub Jelinek
+
+ * Makefile.am (libgcj_tools_la_LIBADD): Add.
+ * Makefile.in: Regenerated.
+
+--- libjava/Makefile.am.jj 2009-05-06 08:14:50.000000000 +0200
++++ libjava/Makefile.am 2009-05-06 10:26:43.000000000 +0200
+@@ -550,7 +550,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
+ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) \
+ $(LIBJAVA_LDFLAGS_LIBMATH)
+
+-libgcj_tools_la_LIBADD = libgcj.la
++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
+ libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \
+ $(libgcj_tools_la_version_dep)
+ if BUILD_SUBLIBS
+--- libjava/Makefile.in.jj 2009-05-06 08:14:49.000000000 +0200
++++ libjava/Makefile.in 2009-05-06 10:27:18.000000000 +0200
+@@ -1110,7 +1110,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
+ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) \
+ $(LIBJAVA_LDFLAGS_LIBMATH)
+
+-libgcj_tools_la_LIBADD = libgcj.la
++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
+ libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \
+ $(libgcj_tools_la_version_dep) $(am__append_19)
+ libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS) \
diff --git a/SOURCES/gcc49-sparc-config-detection.patch b/SOURCES/gcc49-sparc-config-detection.patch
new file mode 100644
index 0000000..cd683a0
--- /dev/null
+++ b/SOURCES/gcc49-sparc-config-detection.patch
@@ -0,0 +1,40 @@
+--- gcc/config.gcc.jj 2008-04-24 15:42:46.000000000 -0500
++++ gcc/config.gcc 2008-04-24 15:44:51.000000000 -0500
+@@ -2656,7 +2656,7 @@ sparc-*-rtems*)
+ tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
+ tmake_file="${tmake_file} sparc/t-sparc sparc/t-elf sparc/t-rtems"
+ ;;
+-sparc-*-linux*)
++sparc-*-linux* | sparcv9-*-linux*)
+ tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
+ extra_options="${extra_options} sparc/long-double-switch.opt"
+ case ${target} in
+@@ -2710,7 +2710,7 @@ sparc64-*-rtems*)
+ extra_options="${extra_options}"
+ tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
+ ;;
+-sparc64-*-linux*)
++sparc64*-*-linux*)
+ tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default-64.h sparc/linux64.h sparc/tso.h"
+ extra_options="${extra_options} sparc/long-double-switch.opt"
+ tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
+--- libgcc/config.host.jj 2008-04-24 15:46:19.000000000 -0500
++++ libgcc/config.host 2008-04-24 15:46:49.000000000 -0500
+@@ -1002,7 +1002,7 @@ sparc-*-elf*)
+ tmake_file="${tmake_file} t-fdpbit t-crtfm"
+ extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
+ ;;
+-sparc-*-linux*) # SPARC's running GNU/Linux, libc6
++sparc-*-linux* | sparcv9-*-linux*) # SPARC's running GNU/Linux, libc6
+ tmake_file="${tmake_file} t-crtfm"
+ if test "${host_address}" = 64; then
+ tmake_file="$tmake_file sparc/t-linux64"
+@@ -1050,7 +1050,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
+ tmake_file="$tmake_file t-crtfm"
+ extra_parts="$extra_parts crtfastmath.o"
+ ;;
+-sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
++sparc64*-*-linux*) # 64-bit SPARC's running GNU/Linux
+ extra_parts="$extra_parts crtfastmath.o"
+ tmake_file="${tmake_file} t-crtfm sparc/t-linux"
+ if test "${host_address}" = 64; then
diff --git a/SPECS/gcc.spec b/SPECS/gcc.spec
new file mode 100644
index 0000000..66171a2
--- /dev/null
+++ b/SPECS/gcc.spec
@@ -0,0 +1,2303 @@
+%{?scl:%scl_package gcc}
+%{?scl:%global __strip strip}
+%{?scl:%global __objdump objdump}
+%global DATE 20140922
+%global SVNREV 215456
+%global gcc_version 4.9.1
+# Note, gcc_release must be integer, if you want to add suffixes to
+# %{release}, append them after %{gcc_release} on Release: line.
+%global gcc_release 10
+%global mpc_version 0.8.1
+%global cloog_version 0.18.1
+%global isl_version 0.12.2
+%global graphviz_version 2.26.0
+%global doxygen_version 1.8.0
+%global _unpackaged_files_terminate_build 0
+%global multilib_64_archs sparc64 ppc64 s390x x86_64
+%ifarch %{ix86} x86_64 ia64
+%global build_libquadmath 1
+%else
+%global build_libquadmath 0
+%endif
+%global build_fortran 1
+%ifarch %{ix86} x86_64 %{arm} alpha ppc ppc64 ppc64le ppc64p7 s390 s390x aarch64
+%global build_libitm 1
+%else
+%global build_libitm 0
+%endif
+%ifarch %{ix86} x86_64 ppc ppc64 %{arm}
+%global build_libasan 1
+%else
+%global build_libasan 0
+%endif
+%ifarch x86_64
+%global build_libtsan 1
+%else
+%global build_libtsan 0
+%endif
+%ifarch x86_64
+%global build_liblsan 1
+%else
+%global build_liblsan 0
+%endif
+%ifarch %{ix86} x86_64 ppc ppc64 ppc64p7 %{arm}
+%global build_libubsan 1
+%else
+%global build_libubsan 0
+%endif
+%ifarch %{ix86} x86_64
+%global build_libcilkrts 1
+%else
+%global build_libcilkrts 0
+%endif
+%ifarch %{ix86} x86_64 ppc ppc64 ppc64p7 s390 s390x %{arm} aarch64
+%global build_libatomic 1
+%else
+%global build_libatomic 0
+%endif
+%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64
+%global attr_ifunc 1
+%else
+%global attr_ifunc 0
+%endif
+%global build_cloog 1
+%global build_libstdcxx_docs 1
+%ifarch s390x
+%global multilib_32_arch s390
+%endif
+%ifarch sparc64
+%global multilib_32_arch sparcv9
+%endif
+%ifarch ppc64
+%global multilib_32_arch ppc
+%endif
+%ifarch x86_64
+%global multilib_32_arch i686
+%endif
+Summary: GCC version 4.9
+Name: %{?scl_prefix}gcc
+#Name: %{?scl_prefix}gcc%{!?scl:49}
+Version: %{gcc_version}
+Release: %{gcc_release}%{?dist}
+# libgcc, libgfortran, libmudflap, libgomp, libstdc++ and crtstuff have
+# GCC Runtime Exception.
+License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
+Group: Development/Languages
+# The source for this package was pulled from upstream's vcs. Use the
+# following commands to generate the tarball:
+# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_9-branch@%{SVNREV} gcc-%{version}-%{DATE}
+# tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
+Source0: gcc-%{version}-%{DATE}.tar.bz2
+Source1: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2
+Source2: ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-%{cloog_version}.tar.gz
+Source3: http://www.multiprecision.org/mpc/download/mpc-%{mpc_version}.tar.gz
+Source4: ftp://ftp.stack.nl/pub/users/dimitri/doxygen-%{doxygen_version}.src.tar.gz
+URL: http://gcc.gnu.org
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+# Need binutils with -pie support >= 2.14.90.0.4-4
+# Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4
+# Need binutils which handle -msecure-plt on ppc >= 2.16.91.0.2-2
+# Need binutils which support .weakref >= 2.16.91.0.3-1
+# Need binutils which support --hash-style=gnu >= 2.17.50.0.2-7
+# Need binutils which support mffgpr and mftgpr >= 2.17.50.0.2-8
+# Need binutils which support --build-id >= 2.17.50.0.17-3
+# Need binutils which support %gnu_unique_object >= 2.19.51.0.14
+# Need binutils which support .cfi_sections >= 2.19.51.0.14-33
+BuildRequires: binutils >= 2.19.51.0.14-33
+# While gcc doesn't include statically linked binaries, during testing
+# -static is used several times.
+BuildRequires: glibc-static
+%if 0%{?scl:1}
+%if 0%{?rhel} >= 7
+BuildRequires: binutils >= 2.22.52.0.1
+%else
+BuildRequires: %{?scl_prefix}binutils >= 2.22.52.0.1
+%endif
+# For testing
+BuildRequires: %{?scl_prefix}gdb >= 7.4.50
+%endif
+BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo, sharutils
+BuildRequires: /usr/bin/pod2man
+%if 0%{?rhel} >= 7
+BuildRequires: texinfo-tex
+%endif
+#BuildRequires: systemtap-sdt-devel >= 1.3
+# For VTA guality testing
+BuildRequires: gdb
+# Make sure pthread.h doesn't contain __thread tokens
+# Make sure glibc supports stack protector
+# Make sure glibc supports DT_GNU_HASH
+BuildRequires: glibc-devel >= 2.4.90-13
+BuildRequires: elfutils-devel >= 0.147
+BuildRequires: elfutils-libelf-devel >= 0.147
+%ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha
+# Make sure glibc supports TFmode long double
+BuildRequires: glibc >= 2.3.90-35
+%endif
+%ifarch %{multilib_64_archs} sparcv9 ppc
+# Ensure glibc{,-devel} is installed for both multilib arches
+BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
+%endif
+%ifarch ia64
+BuildRequires: libunwind >= 0.98
+%endif
+# Need .eh_frame ld optimizations
+# Need proper visibility support
+# Need -pie support
+# Need --as-needed/--no-as-needed support
+# On ppc64, need omit dot symbols support and --non-overlapping-opd
+# Need binutils that owns /usr/bin/c++filt
+# Need binutils that support .weakref
+# Need binutils that supports --hash-style=gnu
+# Need binutils that support mffgpr/mftgpr
+# Need binutils which support --build-id >= 2.17.50.0.17-3
+# Need binutils which support %gnu_unique_object >= 2.19.51.0.14
+# Need binutils which support .cfi_sections >= 2.19.51.0.14-33
+%if 0%{?scl:1}
+%if 0%{?rhel} >= 7
+Requires: binutils >= 2.22.52.0.1
+%else
+Requires: %{?scl_prefix}binutils >= 2.22.52.0.1
+%endif
+%else
+Requires: binutils >= 2.19.51.0.14-33
+%endif
+# Make sure gdb will understand DW_FORM_strp
+Conflicts: gdb < 5.1-2
+Requires: glibc-devel >= 2.2.90-12
+%ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha
+# Make sure glibc supports TFmode long double
+Requires: glibc >= 2.3.90-35
+%endif
+Requires: libgcc >= 4.1.2-43
+Requires: libgomp >= 4.4.4-13
+BuildRequires: gmp-devel >= 4.1.2-8
+BuildRequires: mpfr-devel >= 2.2.1
+%if 0%{?rhel} >= 7
+BuildRequires: libmpc-devel >= 0.8.1
+%endif
+%if %{build_libstdcxx_docs}
+BuildRequires: libxml2
+BuildRequires: graphviz
+%if 0%{?rhel} < 7
+# doxygen BRs
+BuildRequires: perl
+BuildRequires: texlive-dvips, texlive-utils, texlive-latex
+BuildRequires: ghostscript
+%endif
+%if 0%{?rhel} >= 7
+BuildRequires: doxygen >= 1.7.1
+BuildRequires: dblatex, texlive-collection-latex, docbook5-style-xsl
+%endif
+%endif
+%{?scl:Requires:%scl_runtime}
+%{?scl:Provides:gcc = %{version}-%{release}}
+AutoReq: true
+AutoProv: false
+%ifarch sparc64 ppc64 s390x x86_64 ia64
+Provides: liblto_plugin.so.0()(64bit)
+%else
+Provides: liblto_plugin.so.0
+%endif
+%global oformat %{nil}
+%global oformat2 %{nil}
+%ifarch %{ix86}
+%global oformat OUTPUT_FORMAT(elf32-i386)
+%endif
+%ifarch x86_64
+%global oformat OUTPUT_FORMAT(elf64-x86-64)
+%global oformat2 OUTPUT_FORMAT(elf32-i386)
+%endif
+%ifarch ppc
+%global oformat OUTPUT_FORMAT(elf32-powerpc)
+%global oformat2 OUTPUT_FORMAT(elf64-powerpc)
+%endif
+%ifarch ppc64
+%global oformat OUTPUT_FORMAT(elf64-powerpc)
+%global oformat2 OUTPUT_FORMAT(elf32-powerpc)
+%endif
+%ifarch s390
+%global oformat OUTPUT_FORMAT(elf32-s390)
+%endif
+%ifarch s390x
+%global oformat OUTPUT_FORMAT(elf64-s390)
+%global oformat2 OUTPUT_FORMAT(elf32-s390)
+%endif
+%ifarch ia64
+%global oformat OUTPUT_FORMAT(elf64-ia64-little)
+%endif
+
+Patch0: gcc49-hack.patch
+Patch1: gcc49-java-nomulti.patch
+Patch2: gcc49-ppc32-retaddr.patch
+Patch3: gcc49-rh330771.patch
+Patch4: gcc49-i386-libgomp.patch
+Patch5: gcc49-sparc-config-detection.patch
+Patch6: gcc49-libgomp-omp_h-multilib.patch
+Patch7: gcc49-libtool-no-rpath.patch
+Patch8: gcc49-cloog-dl.patch
+Patch9: gcc49-cloog-dl2.patch
+Patch10: gcc49-pr38757.patch
+Patch11: gcc49-libstdc++-docs.patch
+Patch12: gcc49-no-add-needed.patch
+Patch14: gcc49-pr56493.patch
+Patch15: gcc49-color-auto.patch
+Patch16: gcc49-libgo-p224.patch
+Patch17: gcc49-aarch64-async-unw-tables.patch
+Patch18: gcc49-aarch64-unwind-opt.patch
+Patch19: gcc49-pr63285.patch
+
+Patch1000: gcc49-libstdc++-compat.patch
+Patch1001: gcc49-libgfortran-compat.patch
+Patch1002: gcc49-alt-compat-test.patch
+Patch1003: gcc49-libquadmath-compat.patch
+Patch1004: gcc49-libstdc++44-xfail.patch
+Patch1005: gcc49-alt-compat-test2.patch
+Patch1006: gcc49-rh1118870.patch
+
+Patch1100: cloog-%{cloog_version}-ppc64le-config.patch
+
+Patch2001: doxygen-1.7.1-config.patch
+Patch2002: doxygen-1.7.5-timestamp.patch
+Patch2003: doxygen-1.8.0-rh856725.patch
+
+%if 0%{?rhel} >= 7
+%global nonsharedver 48
+%else
+%global nonsharedver 44
+%endif
+
+%if 0%{?scl:1}
+%global _gnu %{nil}
+%else
+%global _gnu 7E
+%endif
+%ifarch sparcv9
+%global gcc_target_platform sparc64-%{_vendor}-%{_target_os}%{?_gnu}
+%endif
+%ifarch ppc
+%global gcc_target_platform ppc64-%{_vendor}-%{_target_os}%{?_gnu}
+%endif
+%ifnarch sparcv9 ppc
+%global gcc_target_platform %{_target_platform}
+%endif
+
+%description
+The %{?scl_prefix}gcc%{!?scl:49} package contains the GNU Compiler Collection version 4.9.
+
+%package c++
+Summary: C++ support for GCC version 4.9
+Group: Development/Languages
+Requires: %{?scl_prefix}gcc%{!?scl:49} = %{version}-%{release}
+%if 0%{?rhel} >= 7
+Requires: libstdc++
+%else
+Requires: libstdc++ >= 4.4.4-13
+%endif
+Requires: %{?scl_prefix}libstdc++%{!?scl:49}-devel = %{version}-%{release}
+Autoreq: true
+Autoprov: true
+
+%description c++
+This package adds C++ support to the GNU Compiler Collection
+version 4.9. It includes support for most of the current C++ specification
+and a lot of support for the upcoming C++ specification.
+
+%package -n %{?scl_prefix}libstdc++%{!?scl:49}-devel
+Summary: Header files and libraries for C++ development
+Group: Development/Libraries
+%if 0%{?rhel} >= 7
+Requires: libstdc++
+%else
+Requires: libstdc++ >= 4.4.4-13
+%endif
+Requires: %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6
+Autoreq: true
+Autoprov: true
+
+%description -n %{?scl_prefix}libstdc++%{!?scl:49}-devel
+This is the GNU implementation of the standard C++ libraries. This
+package includes the header files and libraries needed for C++
+development. This includes rewritten implementation of STL.
+
+%package -n %{?scl_prefix}libstdc++%{!?scl:49}-docs
+Summary: Documentation for the GNU standard C++ library
+Group: Development/Libraries
+Autoreq: true
+
+%description -n %{?scl_prefix}libstdc++%{!?scl:49}-docs
+Manual, doxygen generated API information and Frequently Asked Questions
+for the GNU standard C++ library.
+
+%package gfortran
+Summary: Fortran support for GCC 4.9
+Group: Development/Languages
+Requires: %{?scl_prefix}gcc%{!?scl:49} = %{version}-%{release}
+%if 0%{?rhel} >= 7
+Requires: libgfortran
+%else
+Requires: libgfortran >= 4.4.4-13
+%endif
+%if %{build_libquadmath}
+%if 0%{!?scl:1}
+%if 0%{?rhel} >= 7
+Requires: libquadmath
+%else
+Requires: %{?scl_prefix}libquadmath = %{version}-%{release}
+%endif
+%else
+%if 0%{?rhel} >= 7
+Requires: libquadmath
+%endif
+%endif
+Requires: %{?scl_prefix}libquadmath-devel = %{version}-%{release}
+%endif
+Autoreq: true
+Autoprov: true
+
+%description gfortran
+The %{?scl_prefix}gcc%{!?scl:49}-gfortran package provides support for compiling Fortran
+programs with the GNU Compiler Collection.
+
+%package -n %{?scl_prefix}libquadmath
+Summary: GCC 4.9 __float128 shared support library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+
+%description -n %{?scl_prefix}libquadmath
+This package contains GCC shared support library which is needed
+for __float128 math support and for Fortran REAL*16 support.
+
+%package -n %{?scl_prefix}libquadmath-devel
+Summary: GCC 4.9 __float128 support
+Group: Development/Libraries
+%if 0%{!?scl:1}
+Requires: %{?scl_prefix}libquadmath = %{version}-%{release}
+%else
+%if 0%{?rhel} >= 7
+Requires: libquadmath
+%endif
+%endif
+Requires: %{?scl_prefix}gcc%{!?scl:49} = %{version}-%{release}
+
+%description -n %{?scl_prefix}libquadmath-devel
+This package contains headers for building Fortran programs using
+REAL*16 and programs using __float128 math.
+
+%package -n libitm
+Summary: The GNU Transactional Memory library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+
+%description -n libitm
+This package contains the GNU Transactional Memory library
+which is a GCC transactional memory support runtime library.
+
+%package -n %{?scl_prefix}libitm-devel
+Summary: The GNU Transactional Memory support
+Group: Development/Libraries
+Requires: libitm >= 4.7.0-1
+Requires: %{?scl_prefix}gcc%{!?scl:49} = %{version}-%{release}
+
+%description -n %{?scl_prefix}libitm-devel
+This package contains headers and support files for the
+GNU Transactional Memory library.
+
+%package plugin-devel
+Summary: Support for compiling GCC plugins
+Group: Development/Languages
+Requires: %{?scl_prefix}gcc%{!?scl:49} = %{version}-%{release}
+Requires: gmp-devel >= 4.1.2-8
+Requires: mpfr-devel >= 2.2.1
+%if 0%{?rhel} >= 7
+Requires: libmpc-devel >= 0.8.1
+%endif
+
+%description plugin-devel
+This package contains header files and other support files
+for compiling GCC 4.9 plugins. The GCC plugin ABI is currently
+not stable, so plugins must be rebuilt any time GCC is updated.
+
+%package -n libatomic
+Summary: The GNU Atomic library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+
+%description -n libatomic
+This package contains the GNU Atomic library
+which is a GCC support runtime library for atomic operations not supported
+by hardware.
+
+%package -n %{?scl_prefix}libatomic-devel
+Summary: The GNU Atomic static library
+Group: Development/Libraries
+Requires: libatomic >= 4.8.0
+
+%description -n %{?scl_prefix}libatomic-devel
+This package contains GNU Atomic static libraries.
+
+%package -n libasan
+Summary: The Address Sanitizer runtime library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+
+%description -n libasan
+This package contains the Address Sanitizer library
+which is used for -fsanitize=address instrumented programs.
+
+%package -n %{?scl_prefix}libasan-devel
+Summary: The Address Sanitizer static library
+Group: Development/Libraries
+Requires: libasan >= 4.9.0
+
+%description -n %{?scl_prefix}libasan-devel
+This package contains Address Sanitizer static runtime library.
+
+%package -n libtsan
+Summary: The Thread Sanitizer runtime library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+
+%description -n libtsan
+This package contains the Thread Sanitizer library
+which is used for -fsanitize=thread instrumented programs.
+
+%package -n %{?scl_prefix}libtsan-devel
+Summary: The Thread Sanitizer static library
+Group: Development/Libraries
+Requires: libtsan = %{version}-%{release}
+
+%description -n %{?scl_prefix}libtsan-devel
+This package contains Thread Sanitizer static runtime library.
+
+%package -n libubsan
+Summary: The Undefined Behavior Sanitizer runtime library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+
+%description -n libubsan
+This package contains the Undefined Behavior Sanitizer library
+which is used for -fsanitize=undefined instrumented programs.
+
+%package -n %{?scl_prefix}libubsan-devel
+Summary: The Undefined Behavior Sanitizer static library
+Group: Development/Libraries
+Requires: libubsan >= 4.9.0
+
+%description -n %{?scl_prefix}libubsan-devel
+This package contains Undefined behavior Sanitizer static runtime library.
+
+%package -n liblsan
+Summary: The Leak Sanitizer runtime library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+
+%description -n liblsan
+This package contains the Leak Sanitizer library
+which is used for -fsanitize=leak instrumented programs.
+
+%package -n %{?scl_prefix}liblsan-devel
+Summary: The Leak Sanitizer static library
+Group: Development/Libraries
+Requires: liblsan = %{version}-%{release}
+
+%description -n %{?scl_prefix}liblsan-devel
+This package contains Leak Sanitizer static runtime library.
+
+%package -n libcilkrts
+Summary: The Cilk+ runtime library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+
+%description -n libcilkrts
+This package contains the Cilk+ runtime library.
+
+%package -n %{?scl_prefix}libcilkrts-devel
+Summary: The Cilk+ static runtime library
+Group: Development/Libraries
+Requires: libcilkrts >= 4.9.0
+
+%description -n %{?scl_prefix}libcilkrts-devel
+This package contains the Cilk+ static runtime library.
+
+%prep
+%if 0%{?rhel} >= 7
+%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2
+%else
+%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2 -a 3 -a 4
+%endif
+%patch0 -p0 -b .hack~
+%patch1 -p0 -b .java-nomulti~
+%patch2 -p0 -b .ppc32-retaddr~
+%patch3 -p0 -b .rh330771~
+%patch4 -p0 -b .i386-libgomp~
+%patch5 -p0 -b .sparc-config-detection~
+%patch6 -p0 -b .libgomp-omp_h-multilib~
+%patch7 -p0 -b .libtool-no-rpath~
+%if %{build_cloog}
+%patch8 -p0 -b .cloog-dl~
+%patch9 -p0 -b .cloog-dl2~
+%endif
+%patch10 -p0 -b .pr38757~
+%if %{build_libstdcxx_docs}
+%patch11 -p0 -b .libstdc++-docs~
+%endif
+%patch12 -p0 -b .no-add-needed~
+%patch14 -p0 -b .pr56493~
+%if 0%{?fedora} >= 20 || 0%{?rhel} >= 7
+%patch15 -p0 -b .color-auto~
+%endif
+%patch16 -p0 -b .libgo-p224~
+rm -f libgo/go/crypto/elliptic/p224{,_test}.go
+%patch17 -p0 -b .aarch64-async-unw-tables~
+%patch18 -p0 -b .aarch64-unwind-opt~
+%patch19 -p0 -b .pr63285~
+
+%patch1000 -p0 -b .libstdc++-compat~
+%patch1001 -p0 -b .libgfortran-compat~
+%ifarch %{ix86} x86_64
+%if 0%{?rhel} < 7
+# On i?86/x86_64 there are some incompatibilities in _Decimal* as well as
+# aggregates containing larger vector passing.
+%patch1002 -p0 -b .alt-compat-test~
+%endif
+%endif
+%if 0%{?rhel} < 7
+%patch1003 -p0 -b .libquadmath-compat~
+%endif
+%if 0%{?rhel} == 6
+%patch1004 -p0 -b .libstdc++44-xfail~
+%endif
+%patch1005 -p0 -b .alt-compat-test2~
+%patch1006 -p0 -b .rh1118870~
+
+%patch1100 -p0 -b .cloog-ppc64le-config~
+
+%if %{build_libstdcxx_docs}
+%if 0%{?rhel} < 7
+cd doxygen-%{doxygen_version}
+%patch2001 -p1 -b .config~
+%patch2002 -p1 -b .timestamp~
+%patch2003 -p1 -b .rh856725~
+cd ..
+%endif
+%endif
+
+sed -i -e 's/4\.9\.2/4.9.1/' gcc/BASE-VER
+echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
+
+%if 0%{?rhel} == 6
+# Default to -gdwarf-3 rather than -gdwarf-4
+sed -i '/UInteger Var(dwarf_version)/s/Init(4)/Init(3)/' gcc/common.opt
+sed -i 's/\(may be either 2, 3 or 4; the default version is \)4\./\13./' gcc/doc/invoke.texi
+%endif
+
+cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
+cp -a libstdc++-v3/config/cpu/i{4,3}86/opt
+
+./contrib/gcc_update --touch
+
+LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
+
+%ifarch ppc
+if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
+ mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
+ mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{,64/}baseline_symbols.txt
+ mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{32/,}baseline_symbols.txt
+ rm -rf libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32
+fi
+%endif
+%ifarch sparc
+if [ -d libstdc++-v3/config/abi/post/sparc64-linux-gnu ]; then
+ mkdir -p libstdc++-v3/config/abi/post/sparc64-linux-gnu/64
+ mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{,64/}baseline_symbols.txt
+ mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{32/,}baseline_symbols.txt
+ rm -rf libstdc++-v3/config/abi/post/sparc64-linux-gnu/32
+fi
+%endif
+
+%build
+
+# Undo the broken autoconf change in recent Fedora versions
+export CONFIG_SITE=NONE
+
+rm -fr obj-%{gcc_target_platform}
+mkdir obj-%{gcc_target_platform}
+cd obj-%{gcc_target_platform}
+
+%if %{build_libstdcxx_docs}
+
+%if 0%{?rhel} < 7
+mkdir doxygen-install
+pushd ../doxygen-%{doxygen_version}
+./configure --prefix `cd ..; pwd`/obj-%{gcc_target_platform}/doxygen-install \
+ --shared --release --english-only
+
+make %{?_smp_mflags} all
+make install
+popd
+export PATH=`pwd`/doxygen-install/bin/${PATH:+:${PATH}}
+%endif
+%endif
+
+%if 0%{?rhel} < 7
+mkdir mpc mpc-install
+cd mpc
+../../mpc-%{mpc_version}/configure --disable-shared \
+ CFLAGS="${CFLAGS:-%optflags}" CXXFLAGS="${CXXFLAGS:-%optflags}" \
+ --prefix=`cd ..; pwd`/mpc-install
+make %{?_smp_mflags}
+make install
+cd ..
+%endif
+
+%if %{build_cloog}
+mkdir isl-build isl-install
+%ifarch s390 s390x
+ISL_FLAG_PIC=-fPIC
+%else
+ISL_FLAG_PIC=-fpic
+%endif
+cd isl-build
+../../isl-%{isl_version}/configure --disable-shared \
+ CC=/usr/bin/gcc CXX=/usr/bin/g++ \
+ CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC" --prefix=`cd ..; pwd`/isl-install
+make %{?_smp_mflags}
+make install
+cd ..
+
+mkdir cloog-build cloog-install
+cd cloog-build
+cat >> ../../cloog-%{cloog_version}/source/isl/constraints.c << \EOF
+#include
+static void __attribute__((used)) *s1 = (void *) isl_union_map_compute_flow;
+static void __attribute__((used)) *s2 = (void *) isl_map_dump;
+EOF
+sed -i 's|libcloog|libgcc49privatecloog|g' \
+ ../../cloog-%{cloog_version}/{,test/}Makefile.{am,in}
+isl_prefix=`cd ../isl-install; pwd` \
+../../cloog-%{cloog_version}/configure --with-isl=system \
+ --with-isl-prefix=`cd ../isl-install; pwd` \
+ CC=/usr/bin/gcc CXX=/usr/bin/g++ \
+ CFLAGS="${CFLAGS:-%optflags}" CXXFLAGS="${CXXFLAGS:-%optflags}" \
+ --prefix=`cd ..; pwd`/cloog-install
+sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+make %{?_smp_mflags}
+make %{?_smp_mflags} install
+cd ../cloog-install/lib
+rm libgcc49privatecloog-isl.so{,.4}
+mv libgcc49privatecloog-isl.so.4.0.0 libcloog-isl.so.4
+ln -sf libcloog-isl.so.4 libcloog-isl.so
+ln -sf libcloog-isl.so.4 libcloog.so
+cd ../..
+%endif
+
+%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
+
+CC=gcc
+CXX=g++
+OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'`
+OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'`
+OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'`
+OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'`
+%ifarch sparc
+OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcpu=v[78]//g'`
+%endif
+%ifarch %{ix86}
+OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i.86//g'`
+%endif
+%ifarch sparc64
+cat > gcc64 <<"EOF"
+#!/bin/sh
+exec /usr/bin/gcc -m64 "$@"
+EOF
+chmod +x gcc64
+CC=`pwd`/gcc64
+cat > g++64 <<"EOF"
+#!/bin/sh
+exec /usr/bin/g++ -m64 "$@"
+EOF
+chmod +x g++64
+CXX=`pwd`/g++64
+%endif
+%ifarch ppc64 ppc64le ppc64p7
+if gcc -m64 -xc -S /dev/null -o - > /dev/null 2>&1; then
+ cat > gcc64 <<"EOF"
+#!/bin/sh
+exec /usr/bin/gcc -m64 "$@"
+EOF
+ chmod +x gcc64
+ CC=`pwd`/gcc64
+ cat > g++64 <<"EOF"
+#!/bin/sh
+exec /usr/bin/g++ -m64 "$@"
+EOF
+ chmod +x g++64
+ CXX=`pwd`/g++64
+fi
+%endif
+OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
+CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
+ CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g'`" \
+ XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
+ GCJFLAGS="$OPT_FLAGS" \
+ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+ --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap \
+ --enable-shared --enable-threads=posix --enable-checking=release \
+%ifarch ppc64le
+ --disable-multilib \
+%else
+ --enable-multilib \
+%endif
+ --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
+ --enable-gnu-unique-object \
+ --enable-linker-build-id \
+%if %{build_fortran}
+ --enable-languages=c,c++,fortran,lto \
+%else
+ --enable-languages=c,c++,lto \
+%endif
+ --enable-plugin --with-linker-hash-style=gnu \
+%if 0%{?scl:1}
+ --enable-initfini-array \
+%else
+%ifnarch ia64
+%if 0%{?rhel} >= 7
+ --enable-initfini-array \
+%else
+ --disable-initfini-array \
+%endif
+%endif
+%endif
+ --disable-libgcj \
+%if %{build_cloog}
+ --with-isl=`pwd`/isl-install --with-cloog=`pwd`/cloog-install \
+%endif
+%if 0%{?rhel} < 7
+ --with-mpc=`pwd`/mpc-install \
+%endif
+%if 0%{?rhel} >= 7
+%if %{attr_ifunc}
+ --enable-gnu-indirect-function \
+%endif
+%endif
+%ifarch %{arm}
+ --disable-sjlj-exceptions \
+%endif
+%ifarch ppc ppc64 ppc64le ppc64p7
+ --enable-secureplt \
+%endif
+%ifarch sparc sparcv9 sparc64 ppc ppc64 ppc64le ppc64p7 s390 s390x alpha
+ --with-long-double-128 \
+%endif
+%ifarch sparc
+ --disable-linux-futex \
+%endif
+%ifarch sparc64
+ --with-cpu=ultrasparc \
+%endif
+%ifarch sparc sparcv9
+ --host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7
+%endif
+%ifarch ppc ppc64 ppc64le ppc64p7
+%if 0%{?rhel} >= 7
+ --with-cpu-32=power7 --with-tune-32=power7 --with-cpu-64=power7 --with-tune-64=power7 \
+%else
+ --with-cpu-32=power4 --with-tune-32=power6 --with-cpu-64=power4 --with-tune-64=power6 \
+%endif
+%endif
+%ifarch ppc
+ --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32
+%endif
+%ifarch %{ix86} x86_64
+ --with-tune=generic \
+%endif
+%ifarch %{ix86}
+ --with-arch=i686 \
+%endif
+%ifarch x86_64
+ --with-arch_32=i686 \
+%endif
+%ifarch s390 s390x
+ --with-arch=z9-109 --with-tune=z10 --enable-decimal-float \
+%endif
+%ifnarch sparc sparcv9 ppc
+ --build=%{gcc_target_platform}
+%endif
+
+%ifarch ia64
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
+%else
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
+%endif
+
+%if %{build_cloog}
+cp -a cloog-install/lib/libcloog-isl.so.4 gcc/
+%endif
+
+# Make generated man pages even if Pod::Man is not new enough
+perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
+for i in ../gcc/doc/*.texi; do
+ cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
+done
+make -C gcc generated-manpages
+for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done
+
+# Make generated doxygen pages.
+%if %{build_libstdcxx_docs}
+cd %{gcc_target_platform}/libstdc++-v3
+make doc-html-doxygen
+make doc-man-doxygen
+cd ../..
+%endif
+
+# Copy various doc files here and there
+cd ..
+mkdir -p rpm.doc/gfortran rpm.doc/libquadmath rpm.doc/libitm
+mkdir -p rpm.doc/changelogs/{gcc/cp,libstdc++-v3,libgomp,libatomic,libsanitizer,libcilkrts}
+
+for i in {gcc,gcc/cp,libstdc++-v3,libgomp,libatomic,libsanitizer,libcilkrts}/ChangeLog*; do
+ cp -p $i rpm.doc/changelogs/$i
+done
+
+%if %{build_fortran}
+(cd gcc/fortran; for i in ChangeLog*; do
+ cp -p $i ../../rpm.doc/gfortran/$i
+done)
+(cd libgfortran; for i in ChangeLog*; do
+ cp -p $i ../rpm.doc/gfortran/$i.libgfortran
+done)
+%endif
+
+%if %{build_libquadmath}
+(cd libquadmath; for i in ChangeLog* COPYING.LIB; do
+ cp -p $i ../rpm.doc/libquadmath/$i.libquadmath
+done)
+%endif
+
+%if %{build_libitm}
+(cd libitm; for i in ChangeLog*; do
+ cp -p $i ../rpm.doc/libitm/$i.libitm
+done)
+%endif
+
+rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
+find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
+
+%install
+rm -fr %{buildroot}
+
+%if %{build_libstdcxx_docs}
+%if 0%{?rhel} < 7
+export PATH=`pwd`/obj-%{gcc_target_platform}/doxygen-install/bin/${PATH:+:${PATH}}
+%endif
+%endif
+
+%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
+
+perl -pi -e \
+ 's~href="l(ibstdc|atest)~href="http://gcc.gnu.org/onlinedocs/libstdc++/l\1~' \
+ libstdc++-v3/doc/html/api.html
+
+cd obj-%{gcc_target_platform}
+
+TARGET_PLATFORM=%{gcc_target_platform}
+
+# There are some MP bugs in libstdc++ Makefiles
+make -C %{gcc_target_platform}/libstdc++-v3
+
+%if 0%{?scl:1}
+rm -f gcc/libgcc_s.so
+echo '/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+%{oformat}
+GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > gcc/libgcc_s.so
+%endif
+
+make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
+ infodir=%{buildroot}%{_infodir} install
+
+%if 0%{?scl:1}
+rm -f gcc/libgcc_s.so
+ln -sf libgcc_s.so.1 gcc/libgcc_s.so
+%endif
+
+FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+
+%if 0%{?scl:1}
+ln -sf ../../../../bin/ar $FULLEPATH/ar
+ln -sf ../../../../bin/as $FULLEPATH/as
+ln -sf ../../../../bin/ld $FULLEPATH/ld
+ln -sf ../../../../bin/nm $FULLEPATH/nm
+ln -sf ../../../../bin/ranlib $FULLEPATH/ranlib
+ln -sf ../../../../bin/strip $FULLEPATH/strip
+%endif
+
+%if %{build_cloog}
+cp -a cloog-install/lib/libcloog-isl.so.4 $FULLPATH/
+%endif
+
+# fix some things
+ln -sf gcc %{buildroot}%{_prefix}/bin/cc
+mkdir -p %{buildroot}/lib
+ln -sf ..%{_prefix}/bin/cpp %{buildroot}/lib/cpp
+%if %{build_fortran}
+ln -sf gfortran %{buildroot}%{_prefix}/bin/f95
+%endif
+rm -f %{buildroot}%{_infodir}/dir
+gzip -9 %{buildroot}%{_infodir}/*.info*
+ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc
+
+cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`"
+for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do
+ if ! diff -up $cxxconfig $i; then
+ cat > %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/c++config.h <
+#if __WORDSIZE == 32
+%ifarch %{multilib_64_archs}
+`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)`
+%else
+`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
+%endif
+#else
+%ifarch %{multilib_64_archs}
+`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
+%else
+`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)`
+%endif
+#endif
+#endif
+EOF
+ break
+ fi
+done
+
+for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/ -name c++config.h`; do
+ for i in 1 2 4 8; do
+ sed -i -e 's/#define _GLIBCXX_ATOMIC_BUILTINS_'$i' 1/#ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_'$i'\
+&\
+#endif/' $f
+ done
+done
+
+# Nuke bits/*.h.gch dirs
+# 1) there is no bits/*.h header installed, so when gch file can't be
+# used, compilation fails
+# 2) sometimes it is hard to match the exact options used for building
+# libstdc++-v3 or they aren't desirable
+# 3) there are multilib issues, conflicts etc. with this
+# 4) it is huge
+# People can always precompile on their own whatever they want, but
+# shipping this for everybody is unnecessary.
+rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/*.h.gch
+
+%if %{build_libstdcxx_docs}
+libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen
+mkdir -p ../rpm.doc/libstdc++-v3
+cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html
+cp -r -p $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api
+mkdir -p %{buildroot}%{_mandir}/man3
+cp -r -p $libstdcxx_doc_builddir/man/man3/* %{buildroot}%{_mandir}/man3/
+find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
+%endif
+
+%ifarch sparcv9 sparc64
+ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \
+ %{buildroot}%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}%{?_gnu}-gcc
+%endif
+%ifarch ppc ppc64
+ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \
+ %{buildroot}%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}%{?_gnu}-gcc
+%endif
+
+%ifarch sparcv9 ppc
+FULLLPATH=$FULLPATH/lib32
+%endif
+%ifarch sparc64 ppc64
+FULLLPATH=$FULLPATH/lib64
+%endif
+if [ -n "$FULLLPATH" ]; then
+ mkdir -p $FULLLPATH
+else
+ FULLLPATH=$FULLPATH
+fi
+
+find %{buildroot} -name \*.la | xargs rm -f
+
+%if %{build_fortran}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.spec $FULLPATH/libgfortran.spec
+%endif
+%if %{build_libitm}
+mv %{buildroot}%{_prefix}/%{_lib}/libitm.spec $FULLPATH/
+%endif
+%if %{build_libasan}
+mv %{buildroot}%{_prefix}/%{_lib}/libsanitizer.spec $FULLPATH/
+%endif
+%if %{build_libcilkrts}
+mv %{buildroot}%{_prefix}/%{_lib}/libcilkrts.spec $FULLPATH/
+%endif
+
+mkdir -p %{buildroot}/%{_lib}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
+chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
+ln -sf libgcc_s-%{gcc_version}-%{DATE}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
+ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
+%ifarch sparcv9 ppc
+ln -sf /lib64/libgcc_s.so.1 $FULLPATH/64/libgcc_s.so
+%endif
+%ifarch %{multilib_64_archs}
+ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
+%endif
+
+rm -f $FULLPATH/libgcc_s.so
+echo '/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+%{oformat}
+GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so
+%ifarch sparcv9 ppc
+rm -f $FULLPATH/64/libgcc_s.so
+echo '/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+%{oformat2}
+GROUP ( /lib64/libgcc_s.so.1 libgcc.a )' > $FULLPATH/64/libgcc_s.so
+%endif
+%ifarch %{multilib_64_archs}
+rm -f $FULLPATH/32/libgcc_s.so
+echo '/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+%{oformat2}
+GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so
+%endif
+
+%if %{build_libquadmath}
+%if 0%{?scl:1}
+%if 0%{?rhel} < 7
+cp -a %{gcc_target_platform}/libquadmath/.libs/libquadmathconvenience.a \
+ %{buildroot}%{_prefix}/%{_lib}/libquadmath.a
+%endif
+%endif
+%endif
+
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
+cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \
+ $FULLLPATH/libstdc++_nonshared.a
+%if %{build_fortran}
+%if 0%{?rhel} >= 7
+ar cruv $FULLPATH/libgfortran_nonshared.a
+%ifarch sparcv9 ppc
+ar cruv $FULLPATH/64/libgfortran_nonshared.a
+%endif
+%ifarch %{multilib_64_archs}
+ar cruv $FULLPATH/32/libgfortran_nonshared.a
+%endif
+%else
+cp -a %{gcc_target_platform}/libgfortran/.libs/libgfortran_nonshared.a \
+ $FULLPATH/libgfortran_nonshared.a
+%ifarch sparcv9 ppc
+cp -a %{gcc_target_platform}/64/libgfortran/.libs/libgfortran_nonshared.a \
+ $FULLPATH/64/libgfortran_nonshared.a
+%endif
+%ifarch %{multilib_64_archs}
+cp -a %{gcc_target_platform}/32/libgfortran/.libs/libgfortran_nonshared.a \
+ $FULLPATH/32/libgfortran_nonshared.a
+%endif
+%endif
+%endif
+
+pushd $FULLPATH
+echo '/* GNU ld script */
+%{oformat}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgomp.so.1 )' > libgomp.so
+echo '/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+%{oformat}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' > libstdc++.so
+%if %{build_fortran}
+rm -f libgfortran.so
+echo '/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+%{oformat}
+INPUT ( -lgfortran_nonshared %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgfortran.so.3 AS_NEEDED ( -ldl ) )' > libgfortran.so
+%endif
+%if %{build_libquadmath}
+rm -f libquadmath.so
+echo '/* GNU ld script */
+%{oformat}
+%if 0%{!?scl:1}
+INPUT ( %{_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so
+%else
+%if 0%{?rhel} >= 7
+INPUT ( %{_root_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so
+%else
+INPUT ( libquadmath.a )' > libquadmath.so
+%endif
+%endif
+%endif
+%if %{build_libitm}
+rm -f libitm.so
+echo '/* GNU ld script */
+%{oformat}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libitm.so.1 )' > libitm.so
+%endif
+%if %{build_libatomic}
+rm -f libatomic.so
+echo '/* GNU ld script */
+%{oformat}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libatomic.so.1 )' > libatomic.so
+%endif
+%if %{build_libasan}
+rm -f libasan.so
+echo '/* GNU ld script */
+%{oformat}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libasan.so.1 )' > libasan.so
+%endif
+%if %{build_libtsan}
+rm -f libtsan.so
+echo '/* GNU ld script */
+%{oformat}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libtsan.so.0 )' > libtsan.so
+%endif
+%if %{build_libubsan}
+rm -f libubsan.so
+echo '/* GNU ld script */
+%{oformat}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libubsan.so.0 )' > libubsan.so
+%endif
+%if %{build_liblsan}
+rm -f liblsan.so
+echo '/* GNU ld script */
+%{oformat}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/liblsan.so.0 )' > liblsan.so
+%endif
+%if %{build_libcilkrts}
+rm -f libcilkrts.so
+echo '/* GNU ld script */
+%{oformat}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libcilkrts.so.5 )' > libcilkrts.so
+%endif
+mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
+mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a .
+%if %{build_fortran}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a .
+%endif
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a .
+%if %{build_libquadmath}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/
+%endif
+%if %{build_libitm}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libitm.*a $FULLLPATH/
+%endif
+%if %{build_libatomic}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libatomic.*a $FULLLPATH/
+%endif
+%if %{build_libasan}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libasan.*a $FULLLPATH/
+mv -f %{buildroot}%{_prefix}/%{_lib}/libasan_preinit.o $FULLLPATH/
+%endif
+%if %{build_libtsan}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan.*a $FULLLPATH/
+%endif
+%if %{build_libubsan}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libubsan.*a $FULLLPATH/
+%endif
+%if %{build_liblsan}
+mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan.*a $FULLLPATH/
+%endif
+%if %{build_libcilkrts}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libcilkrts.*a $FULLLPATH/
+%endif
+
+%ifarch sparcv9 ppc
+echo '/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libstdc++.so.6 -lstdc++_nonshared )' > 64/libstdc++.so
+%if %{build_fortran}
+rm -f 64/libgfortran.so
+echo '/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+%{oformat2}
+INPUT ( -lgfortran_nonshared %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libgfortran.so.3 AS_NEEDED ( -ldl ) )' > 64/libgfortran.so
+%endif
+echo '/* GNU ld script */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libgomp.so.1 )' > 64/libgomp.so
+%if %{build_libquadmath}
+rm -f 64/libquadmath.so
+echo '/* GNU ld script */
+%{oformat2}
+%if 0%{!?scl:1}
+INPUT ( %{_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so
+%else
+%if 0%{?rhel} >= 7
+INPUT ( %{_root_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so
+%else
+INPUT ( libquadmath.a )' > 64/libquadmath.so
+%endif
+%endif
+%endif
+%if %{build_libitm}
+rm -f 64/libitm.so
+echo '/* GNU ld script */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libitm.so.1 )' > 64/libitm.so
+%endif
+%if %{build_libatomic}
+rm -f 64/libatomic.so
+echo '/* GNU ld script */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libatomic.so.1 )' > 64/libatomic.so
+%endif
+%if %{build_libasan}
+rm -f 64/libasan.so
+echo '/* GNU ld script */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libasan.so.1 )' > 64/libasan.so
+%endif
+%if %{build_libubsan}
+rm -f 64/libubsan.so
+echo '/* GNU ld script */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libubsan.so.0 )' > 64/libubsan.so
+%endif
+%if %{build_libcilkrts}
+rm -f 64/libcilkrts.so
+echo '/* GNU ld script */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libcilkrts.so.5 )' > 64/libcilkrts.so
+%endif
+mv -f %{buildroot}%{_prefix}/lib64/libsupc++.*a 64/
+%if %{build_fortran}
+mv -f %{buildroot}%{_prefix}/lib64/libgfortran.*a 64/
+%endif
+mv -f %{buildroot}%{_prefix}/lib64/libgomp.*a 64/
+%if %{build_libquadmath}
+mv -f %{buildroot}%{_prefix}/lib64/libquadmath.*a 64/
+%endif
+ln -sf lib32/libstdc++.a libstdc++.a
+ln -sf ../lib64/libstdc++.a 64/libstdc++.a
+ln -sf lib32/libstdc++_nonshared.a libstdc++_nonshared.a
+ln -sf ../lib64/libstdc++_nonshared.a 64/libstdc++_nonshared.a
+%if %{build_libquadmath}
+ln -sf lib32/libquadmath.a libquadmath.a
+ln -sf ../lib64/libquadmath.a 64/libquadmath.a
+%endif
+%if %{build_libitm}
+ln -sf lib32/libitm.a libitm.a
+ln -sf ../lib64/libitm.a 64/libitm.a
+%endif
+%if %{build_libatomic}
+ln -sf lib32/libatomic.a libatomic.a
+ln -sf ../lib64/libatomic.a 64/libatomic.a
+%endif
+%if %{build_libasan}
+ln -sf lib32/libasan.a libasan.a
+ln -sf ../lib64/libasan.a 64/libasan.a
+ln -sf lib32/libasan_preinit.o libasan_preinit.o
+ln -sf ../lib64/libasan_preinit.o 64/libasan_preinit.o
+%endif
+%if %{build_libubsan}
+ln -sf lib32/libubsan.a libubsan.a
+ln -sf ../lib64/libubsan.a 64/libubsan.a
+%endif
+%if %{build_libcilkrts}
+ln -sf lib32/libcilkrts.a libcilkrts.a
+ln -sf ../lib64/libcilkrts.a 64/libcilkrts.a
+%endif
+%endif
+%ifarch %{multilib_64_archs}
+mkdir -p 32
+echo '/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libstdc++.so.6 -lstdc++_nonshared )' > 32/libstdc++.so
+%if %{build_fortran}
+rm -f 32/libgfortran.so
+echo '/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+%{oformat2}
+INPUT ( -lgfortran_nonshared %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgfortran.so.3 AS_NEEDED ( -ldl ) )' > 32/libgfortran.so
+%endif
+echo '/* GNU ld script */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgomp.so.1 )' > 32/libgomp.so
+%if %{build_libquadmath}
+rm -f 32/libquadmath.so
+echo '/* GNU ld script */
+%{oformat2}
+%if 0%{!?scl:1}
+INPUT ( %{_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so
+%else
+%if 0%{?rhel} >= 7
+INPUT ( %{_root_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so
+%else
+INPUT ( libquadmath.a )' > 32/libquadmath.so
+%endif
+%endif
+%endif
+%if %{build_libitm}
+rm -f 32/libitm.so
+echo '/* GNU ld script */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libitm.so.1 )' > 32/libitm.so
+%endif
+%if %{build_libatomic}
+rm -f 32/libatomic.so
+echo '/* GNU ld script */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libatomic.so.1 )' > 32/libatomic.so
+%endif
+%if %{build_libasan}
+rm -f 32/libasan.so
+echo '/* GNU ld script */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libasan.so.1 )' > 32/libasan.so
+%endif
+%if %{build_libubsan}
+rm -f 32/libubsan.so
+echo '/* GNU ld script */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libubsan.so.0 )' > 32/libubsan.so
+%endif
+%if %{build_libcilkrts}
+rm -f 32/libcilkrts.so
+echo '/* GNU ld script */
+%{oformat2}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libcilkrts.so.5 )' > 32/libcilkrts.so
+%endif
+mv -f %{buildroot}%{_prefix}/lib/libsupc++.*a 32/
+%if %{build_fortran}
+mv -f %{buildroot}%{_prefix}/lib/libgfortran.*a 32/
+%endif
+mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/
+%if %{build_libquadmath}
+mv -f %{buildroot}%{_prefix}/lib/libquadmath.*a 32/
+%endif
+%endif
+%ifarch sparc64 ppc64
+ln -sf ../lib32/libstdc++.a 32/libstdc++.a
+ln -sf lib64/libstdc++.a libstdc++.a
+ln -sf ../lib32/libstdc++_nonshared.a 32/libstdc++_nonshared.a
+ln -sf lib64/libstdc++_nonshared.a libstdc++_nonshared.a
+%if %{build_libquadmath}
+ln -sf ../lib32/libquadmath.a 32/libquadmath.a
+ln -sf lib64/libquadmath.a libquadmath.a
+%endif
+%if %{build_libitm}
+ln -sf ../lib32/libitm.a 32/libitm.a
+ln -sf lib64/libitm.a libitm.a
+%endif
+%if %{build_libatomic}
+ln -sf ../lib32/libatomic.a 32/libatomic.a
+ln -sf lib64/libatomic.a libatomic.a
+%endif
+%if %{build_libasan}
+ln -sf ../lib32/libasan.a 32/libasan.a
+ln -sf lib64/libasan.a libasan.a
+ln -sf ../lib32/libasan_preinit.o 32/libasan_preinit.o
+ln -sf lib64/libasan_preinit.o libasan_preinit.o
+%endif
+%if %{build_libubsan}
+ln -sf ../lib32/libubsan.a 32/libubsan.a
+ln -sf lib64/libubsan.a libubsan.a
+%endif
+%if %{build_libcilkrts}
+ln -sf ../lib32/libcilkrts.a 32/libcilkrts.a
+ln -sf lib64/libcilkrts.a libcilkrts.a
+%endif
+%else
+%ifarch %{multilib_64_archs}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_version}/libstdc++.a 32/libstdc++.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_version}/libstdc++_nonshared.a 32/libstdc++_nonshared.a
+%if %{build_libquadmath}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_version}/libquadmath.a 32/libquadmath.a
+%endif
+%if %{build_libitm}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_version}/libitm.a 32/libitm.a
+%endif
+%if %{build_libatomic}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_version}/libatomic.a 32/libatomic.a
+%endif
+%if %{build_libasan}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_version}/libasan.a 32/libasan.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_version}/libasan_preinit.o 32/libasan_preinit.o
+%endif
+%if %{build_libubsan}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_version}/libubsan.a 32/libubsan.a
+%endif
+%if %{build_libcilkrts}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_version}/libcilkrts.a 32/libcilkrts.a
+%endif
+%endif
+%endif
+
+# Strip debug info from Fortran/ObjC/Java static libraries
+strip -g `find . \( -name libgfortran.a -o -name libgomp.a \
+ -o -name libgcc.a -o -name libgcov.a \
+ -o -name libquadmath.a -o -name libitm.a \
+ -o -name libatomic.a -o -name libasan.a \
+ -o -name libtsan.a -o -name libubsan.a \
+ -o -name liblsan.a -o -name libcilkrts.a \) -a -type f`
+popd
+%if %{build_fortran}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.3.*
+%endif
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.*
+%if %{build_libquadmath}
+%if 0%{!?scl:1}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.*
+%endif
+%endif
+%if %{build_libitm}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.*
+%if 0%{?scl:1}
+mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
+mv %{buildroot}%{_prefix}/%{_lib}/libitm.so.1* %{buildroot}%{_root_prefix}/%{_lib}/
+mkdir -p %{buildroot}%{_root_infodir}
+mv %{buildroot}%{_infodir}/libitm.info* %{buildroot}%{_root_infodir}/
+%endif
+%endif
+%if %{build_libatomic}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1.*
+%if 0%{?scl:1}
+mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
+mv %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1* %{buildroot}%{_root_prefix}/%{_lib}/
+mkdir -p %{buildroot}%{_root_infodir}
+%endif
+%endif
+%if %{build_libasan}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.1.*
+%if 0%{?scl:1}
+mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
+mv %{buildroot}%{_prefix}/%{_lib}/libasan.so.1* %{buildroot}%{_root_prefix}/%{_lib}/
+mkdir -p %{buildroot}%{_root_infodir}
+%endif
+%endif
+%if %{build_libtsan}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0.*
+%if 0%{?scl:1}
+mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
+mv %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0* %{buildroot}%{_root_prefix}/%{_lib}/
+mkdir -p %{buildroot}%{_root_infodir}
+%endif
+%endif
+%if %{build_libubsan}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.0.*
+%if 0%{?scl:1}
+mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
+mv %{buildroot}%{_prefix}/%{_lib}/libubsan.so.0* %{buildroot}%{_root_prefix}/%{_lib}/
+mkdir -p %{buildroot}%{_root_infodir}
+%endif
+%endif
+%if %{build_liblsan}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.*
+%if 0%{?scl:1}
+mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
+mv %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0* %{buildroot}%{_root_prefix}/%{_lib}/
+mkdir -p %{buildroot}%{_root_infodir}
+%endif
+%endif
+%if %{build_libcilkrts}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcilkrts.so.5.*
+%if 0%{?scl:1}
+mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
+mv %{buildroot}%{_prefix}/%{_lib}/libcilkrts.so.5* %{buildroot}%{_root_prefix}/%{_lib}/
+%endif
+%endif
+
+mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h
+mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h
+for h in `find $FULLPATH/include -name \*.h`; do
+ if grep -q 'It has been auto-edited by fixincludes from' $h; then
+ rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'`
+ diff -up $rh $h || :
+ rm -f $h
+ fi
+done
+
+cd ..
+
+%if 0%{!?scl:1}
+for i in %{buildroot}%{_prefix}/bin/{*gcc,*++,gcov,gfortran,gcc-ar,gcc-nm,gcc-ranlib}; do
+ mv -f $i ${i}49
+done
+%endif
+
+# Remove binaries we will not be including, so that they don't end up in
+# gcc49-debuginfo
+rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a,libmudflap*,libstdc++*,libgfortran*}
+%if 0%{?scl:1}
+rm -f %{buildroot}%{_prefix}/%{_lib}/{libquadmath*,libitm*,libatomic*,libasan*,libtsan*,libubsan*,liblsan*}
+%endif
+rm -f %{buildroot}%{_prefix}/%{_lib}/libgomp*
+rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
+rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a
+rm -f %{buildroot}%{_prefix}/%{_lib}/libssp*
+rm -f %{buildroot}%{_prefix}/%{_lib}/libvtv* || :
+rm -f %{buildroot}/lib/cpp
+rm -f %{buildroot}/%{_lib}/libgcc_s*
+rm -f %{buildroot}%{_prefix}/bin/{f95,gccbug,gnatgcc*}
+rm -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-{gcc-*,gfortran}
+%if 0%{!?scl:1}
+rm -f %{buildroot}%{_prefix}/bin/{*c++*,cc,cpp}
+%endif
+rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-%{version} || :
+rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gfortran || :
+
+%ifarch %{multilib_64_archs}
+# Remove libraries for the other arch on multilib arches
+rm -f %{buildroot}%{_prefix}/lib/lib*.so*
+rm -f %{buildroot}%{_prefix}/lib/lib*.a
+rm -f %{buildroot}/lib/libgcc_s*.so*
+%else
+%ifarch sparcv9 ppc
+rm -f %{buildroot}%{_prefix}/lib64/lib*.so*
+rm -f %{buildroot}%{_prefix}/lib64/lib*.a
+rm -f %{buildroot}/lib64/libgcc_s*.so*
+%endif
+%endif
+
+# Help plugins find out nvra.
+echo gcc-%{version}-%{release}.%{arch} > $FULLPATH/rpmver
+
+%check
+cd obj-%{gcc_target_platform}
+
+%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
+
+# Test against the system libstdc++.so.6 + libstdc++_nonshared.a combo
+mv %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6{,.not_here}
+mv %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so{,.not_here}
+ln -sf %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 \
+ %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6
+echo '/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+%{oformat}
+INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' \
+ > %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so
+cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \
+ %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared.a
+
+# run the tests.
+make %{?_smp_mflags} -k check RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || :
+( LC_ALL=C ../contrib/test_summary -t || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' > testresults
+rm -rf gcc/testsuite.prev
+mv gcc/testsuite{,.prev}
+rm -f gcc/site.exp
+make %{?_smp_mflags} -C gcc -k check-gcc check-g++ ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}' compat.exp struct-layout-1.exp" || :
+mv gcc/testsuite/gcc/gcc.sum{,.sent}
+mv gcc/testsuite/g++/g++.sum{,.sent}
+( LC_ALL=C ../contrib/test_summary -o -t || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' > testresults2
+rm -rf gcc/testsuite.compat
+mv gcc/testsuite{,.compat}
+mv gcc/testsuite{.prev,}
+echo ====================TESTING=========================
+cat testresults
+echo ===`gcc --version | head -1` compatibility tests====
+cat testresults2
+echo ====================TESTING END=====================
+mkdir testlogs-%{_target_platform}-%{version}-%{release}
+for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats.*/tests/'`; do
+ ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
+done
+for i in `find gcc/testsuite.compat -name \*.log | grep -v 'config.log\|acats.*/tests/'`; do
+ ln $i testlogs-%{_target_platform}-%{version}-%{release}/`basename $i`.compat || :
+done
+tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \
+ | uuencode testlogs-%{_target_platform}.tar.bz2 || :
+rm -rf testlogs-%{_target_platform}-%{version}-%{release}
+
+%clean
+rm -rf %{buildroot}
+
+%if 0%{?scl:1}
+%post gfortran
+if [ -f %{_infodir}/gfortran.info.gz ]; then
+ /sbin/install-info \
+ --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
+fi
+
+%preun gfortran
+if [ $1 = 0 -a -f %{_infodir}/gfortran.info.gz ]; then
+ /sbin/install-info --delete \
+ --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
+fi
+%endif
+
+%post -n %{?scl_prefix}libquadmath
+/sbin/ldconfig
+if [ -f %{_infodir}/libquadmath.info.gz ]; then
+ /sbin/install-info \
+ --info-dir=%{_infodir} %{_infodir}/libquadmath.info.gz || :
+fi
+
+%preun -n %{?scl_prefix}libquadmath
+if [ $1 = 0 -a -f %{_infodir}/libquadmath.info.gz ]; then
+ /sbin/install-info --delete \
+ --info-dir=%{_infodir} %{_infodir}/libquadmath.info.gz || :
+fi
+
+%postun -n %{?scl_prefix}libquadmath -p /sbin/ldconfig
+
+%post -n libitm
+/sbin/ldconfig
+if [ -f %{?scl:%{_root_infodir}}%{!?scl:%{_infodir}}/libitm.info.gz ]; then
+ /sbin/install-info \
+ --info-dir=%{?scl:%{_root_infodir}}%{!?scl:%{_infodir}} %{?scl:%{_root_infodir}}%{!?scl:%{_infodir}}/libitm.info.gz || :
+fi
+
+%preun -n libitm
+if [ $1 = 0 -a -f %{?scl:%{_root_infodir}}%{!?scl:%{_infodir}}/libitm.info.gz ]; then
+ /sbin/install-info --delete \
+ --info-dir=%{?scl:%{_root_infodir}}%{!?scl:%{_infodir}} %{?scl:%{_root_infodir}}%{!?scl:%{_infodir}}/libitm.info.gz || :
+fi
+
+%postun -n libitm -p /sbin/ldconfig
+
+%post -n libatomic -p /sbin/ldconfig
+
+%postun -n libatomic -p /sbin/ldconfig
+
+%post -n libasan -p /sbin/ldconfig
+
+%postun -n libasan -p /sbin/ldconfig
+
+%post -n libtsan -p /sbin/ldconfig
+
+%postun -n libtsan -p /sbin/ldconfig
+
+%post -n libubsan -p /sbin/ldconfig
+
+%postun -n libubsan -p /sbin/ldconfig
+
+%post -n liblsan -p /sbin/ldconfig
+
+%postun -n liblsan -p /sbin/ldconfig
+
+%post -n libcilkrts -p /sbin/ldconfig
+
+%postun -n libcilkrts -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%{_prefix}/bin/gcc%{!?scl:49}
+%{_prefix}/bin/gcov%{!?scl:49}
+%{_prefix}/bin/gcc-ar%{!?scl:49}
+%{_prefix}/bin/gcc-nm%{!?scl:49}
+%{_prefix}/bin/gcc-ranlib%{!?scl:49}
+%ifarch ppc
+%{_prefix}/bin/%{_target_platform}-gcc%{!?scl:49}
+%endif
+%ifarch sparc64 sparcv9
+%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}%{?_gnu}-gcc%{!?scl:49}
+%endif
+%ifarch ppc64
+%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}%{?_gnu}-gcc%{!?scl:49}
+%endif
+%{_prefix}/bin/%{gcc_target_platform}-gcc%{!?scl:49}
+%if 0%{?scl:1}
+%{_prefix}/bin/cc
+%{_prefix}/bin/cpp
+%{_mandir}/man1/gcc.1*
+%{_mandir}/man1/cpp.1*
+%{_mandir}/man1/gcov.1*
+%{_infodir}/gcc*
+%{_infodir}/cpp*
+%endif
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/rpmver
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stddef.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdarg.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdfix.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/varargs.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/float.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/limits.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdbool.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/iso646.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/syslimits.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/unwind.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/omp.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdint.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdint-gcc.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdalign.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdnoreturn.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdatomic.h
+%ifarch %{ix86} x86_64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/emmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/pmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/tmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ammintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/smmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/nmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/bmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/wmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/immintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avxintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/x86intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/fma4intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xopintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/lwpintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/popcntintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/bmiintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/tbmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ia32intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx2intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/bmi2intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/f16cintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/fmaintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/lzcntintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/rtmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xtestintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/adxintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/prfchwintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/rdseedintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/fxsrintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xsaveintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xsaveoptintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512cdintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512erintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512fintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512pfintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/shaintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mm_malloc.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mm3dnow.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cpuid.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cross-stdarg.h
+%endif
+%ifarch ia64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ia64intrin.h
+%endif
+%ifarch ppc ppc64 ppc64le ppc64p7
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ppc-asm.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/altivec.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/spe.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/paired.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ppu_intrinsics.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/si2vmx.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/spu2vmx.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/vec_types.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/htmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/htmxlintrin.h
+%endif
+%ifarch s390 s390x
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/s390intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/htmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/htmxlintrin.h
+%endif
+%if %{build_libcilkrts}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cilk
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libcilkrts.spec
+%endif
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.so*
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%if 0%{?scl:1}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/ar
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/as
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/ld
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/nm
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/ranlib
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/strip
+%endif
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.spec
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.so
+%if %{build_libitm}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.spec
+%endif
+%if %{build_libasan}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsanitizer.spec
+%endif
+%ifarch sparcv9 sparc64 ppc ppc64
+%if %{build_libquadmath}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libquadmath.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libquadmath.so
+%endif
+%endif
+%if %{build_cloog}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libcloog-isl.so.*
+%endif
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgomp.so
+%if %{build_libquadmath}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libquadmath.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libquadmath.so
+%endif
+%if %{build_libitm}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libitm.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libitm.so
+%endif
+%if %{build_libatomic}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libatomic.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libatomic.so
+%endif
+%if %{build_libasan}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libasan.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libasan.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libasan_preinit.o
+%endif
+%if %{build_libubsan}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libubsan.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libubsan.so
+%endif
+%if %{build_libcilkrts}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libcilkrts.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libcilkrts.so
+%endif
+%endif
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.so
+%if %{build_libquadmath}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libquadmath.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libquadmath.so
+%endif
+%if %{build_libitm}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libitm.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libitm.so
+%endif
+%if %{build_libatomic}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libatomic.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libatomic.so
+%endif
+%if %{build_libasan}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libasan.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libasan.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libasan_preinit.o
+%endif
+%if %{build_libubsan}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libubsan.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libubsan.so
+%endif
+%if %{build_libcilkrts}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libcilkrts.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libcilkrts.so
+%endif
+%endif
+%ifarch sparcv9 sparc64 ppc ppc64
+%if %{build_libquadmath}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libquadmath.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libquadmath.so
+%endif
+%if %{build_libitm}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.so
+%endif
+%if %{build_libatomic}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libatomic.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libatomic.so
+%endif
+%if %{build_libasan}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan_preinit.o
+%endif
+%if %{build_libtsan}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan.so
+%endif
+%if %{build_libubsan}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libubsan.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libubsan.so
+%endif
+%if %{build_liblsan}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/liblsan.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/liblsan.so
+%endif
+%if %{build_libcilkrts}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libcilkrts.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libcilkrts.so
+%endif
+%endif
+%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING* COPYING.RUNTIME
+
+%files c++
+%defattr(-,root,root,-)
+%{_prefix}/bin/%{gcc_target_platform}-g++%{!?scl:49}
+%{_prefix}/bin/g++%{!?scl:49}
+%if 0%{?scl:1}
+%{_prefix}/bin/%{gcc_target_platform}-c++
+%{_prefix}/bin/c++
+%{_mandir}/man1/g++.1*
+%endif
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++_nonshared.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libsupc++.a
+%endif
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++_nonshared.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libsupc++.a
+%endif
+%ifarch sparcv9 ppc %{multilib_64_archs}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
+%endif
+%ifarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++_nonshared.a
+%endif
+%doc rpm.doc/changelogs/gcc/cp/ChangeLog*
+
+%files -n %{?scl_prefix}libstdc++%{!?scl:49}-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/include/c++
+%dir %{_prefix}/include/c++/%{gcc_version}
+%{_prefix}/include/c++/%{gcc_version}/[^gjos]*
+%{_prefix}/include/c++/%{gcc_version}/os*
+%{_prefix}/include/c++/%{gcc_version}/s[^u]*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libstdc++.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libstdc++_nonshared.a
+%endif
+%ifarch sparc64 ppc64
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libstdc++.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libstdc++_nonshared.a
+%endif
+%ifnarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++_nonshared.a
+%endif
+%ifnarch sparcv9 ppc %{multilib_64_archs}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
+%endif
+%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README*
+
+%if %{build_libstdcxx_docs}
+%files -n %{?scl_prefix}libstdc++%{!?scl:49}-docs
+%defattr(-,root,root)
+%{_mandir}/man3/*
+%doc rpm.doc/libstdc++-v3/html
+%endif
+
+%if %{build_fortran}
+%files gfortran
+%defattr(-,root,root,-)
+%{_prefix}/bin/gfortran%{!?scl:49}
+%if 0%{?scl:1}
+%{_mandir}/man1/gfortran.1*
+%{_infodir}/gfortran*
+%endif
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.f90
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.mod
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib_kinds.mod
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/f951
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.spec
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libcaf_single.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran_nonshared.a
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libcaf_single.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortran.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortran_nonshared.a
+%endif
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libcaf_single.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran_nonshared.a
+%endif
+%doc rpm.doc/gfortran/*
+%endif
+
+%if %{build_libquadmath}
+%if 0%{!?scl:1}
+%files -n %{?scl_prefix}libquadmath
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libquadmath.so.0*
+%{_infodir}/libquadmath.info*
+%doc rpm.doc/libquadmath/COPYING*
+%endif
+
+%files -n %{?scl_prefix}libquadmath-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/quadmath.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/quadmath_weak.h
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libquadmath.a
+%endif
+%ifarch sparc64 ppc64
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libquadmath.a
+%endif
+%ifnarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libquadmath.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libquadmath.so
+%endif
+%doc rpm.doc/libquadmath/ChangeLog*
+%endif
+
+%if %{build_libitm}
+%files -n libitm
+%defattr(-,root,root,-)
+%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libitm.so.1*
+%{?scl:%{_root_infodir}}%{!?scl:%{_infodir}}/libitm.info*
+
+%files -n %{?scl_prefix}libitm-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libitm.a
+%endif
+%ifarch sparc64 ppc64
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libitm.a
+%endif
+%ifnarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.a
+%endif
+%doc rpm.doc/libitm/ChangeLog*
+%endif
+
+%if %{build_libatomic}
+%files -n libatomic
+%defattr(-,root,root,-)
+%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libatomic.so.1*
+
+%files -n %{?scl_prefix}libatomic-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libatomic.a
+%endif
+%ifarch sparc64 ppc64
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libatomic.a
+%endif
+%ifnarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libatomic.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libatomic.a
+%endif
+%doc rpm.doc/changelogs/libatomic/ChangeLog*
+%endif
+
+%if %{build_libasan}
+%files -n libasan
+%defattr(-,root,root,-)
+%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libasan.so.1*
+
+%files -n %{?scl_prefix}libasan-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libasan.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libasan_preinit.o
+%endif
+%ifarch sparc64 ppc64
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libasan.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libasan_preinit.o
+%endif
+%ifnarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan_preinit.o
+%endif
+%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
+%endif
+
+%if %{build_libtsan}
+%files -n libtsan
+%defattr(-,root,root,-)
+%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libtsan.so.0*
+
+%files -n %{?scl_prefix}libtsan-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan.a
+%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
+%endif
+
+%if %{build_libubsan}
+%files -n libubsan
+%defattr(-,root,root,-)
+%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libubsan.so.0*
+
+%files -n %{?scl_prefix}libubsan-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libubsan.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libubsan.a
+%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
+%endif
+
+%if %{build_liblsan}
+%files -n liblsan
+%defattr(-,root,root,-)
+%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/liblsan.so.0*
+
+%files -n %{?scl_prefix}liblsan-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/liblsan.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/liblsan.a
+%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
+%endif
+
+%if %{build_libcilkrts}
+%files -n libcilkrts
+%defattr(-,root,root,-)
+%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libcilkrts.so.5*
+
+%files -n %{?scl_prefix}libcilkrts-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libcilkrts.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libcilkrts.a
+%doc rpm.doc/changelogs/libcilkrts/ChangeLog* libcilkrts/README
+%endif
+
+%files plugin-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
+
+%changelog
+* Mon Sep 22 2014 Jakub Jelinek 4.9.1-10
+- update from 4.9 branch
+ - various -fcompare-debug fixes (#1140872)
+
+* Fri Aug 15 2014 Jakub Jelinek 4.9.1-8
+- update from 4.9 branch
+- require devtoolset-3-binutils on RHEL6 (#1127633)
+
+* Thu Aug 7 2014 Jakub Jelinek 4.9.1-5
+- update from 4.9 branch
+- fix libgfortran overflows on allocation (#1125219, CVE-2014-5044)
+- backport -fsanitize=alignment support from the trunk
+
+* Thu Jul 24 2014 Marek Polacek 4.9.1-4
+- handle libcilkrts.spec (#1123062)
+
+* Wed Jul 23 2014 Jonathan Wakely 4.9.1-3
+- add regression test (#1118870)
+
+* Thu Jul 17 2014 Jakub Jelinek 4.9.1-2
+- update from 4.9 branch
+- backport -fsanitize=bounds support from the trunk
+
+* Fri May 30 2014 Jakub Jelinek 4.9.0-6.2
+- fix libstdc++_nonshared.a on i?86
+
+* Thu May 29 2014 Jakub Jelinek 4.9.0-6
+- update from 4.9 branch
+- backport -fsanitize=float-cast-overflow from the trunk
+- make sure libcilkrts can use system libgcc_s.so.1 (#1101242)
+- fix compat testing
+
+* Sun May 18 2014 Jakub Jelinek 4.9.0-5
+- new package