summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYaakov Selkowitz <yselkowitz@users.sourceforge.net>2013-06-28 15:44:38 -0500
committerYaakov Selkowitz <yselkowitz@users.sourceforge.net>2013-06-28 15:44:38 -0500
commit08163f0587b4807e32a9fc0e4a887c8d45a641d1 (patch)
treeb411b3acc12e3f769fbd69d552a57a96c1138352
parent8cc9e7a9383915ffc95341f09ad495f309184351 (diff)
downloadcygwin-gcc-08163f0587b4807e32a9fc0e4a887c8d45a641d1.tar.gz
cygwin-gcc-08163f0587b4807e32a9fc0e4a887c8d45a641d1.tar.xz
cygwin-gcc-08163f0587b4807e32a9fc0e4a887c8d45a641d1.zip
cygwin-gcc 4.7.3
-rw-r--r--classpath-0.98-awt.patch76
-rw-r--r--config-rpath.patch11
-rw-r--r--cygwin-gcc.spec572
-rw-r--r--gcc45-cross-ecjx.patch42
-rw-r--r--gcc45-cross-exe-suffix.diff4
-rw-r--r--gcc45-ehdebug.diff157
-rw-r--r--gcc45-gc-win32-threads.diff20
-rw-r--r--gcc45-libffi.diff63
-rw-r--r--gcc45-misc-core.diff54
-rw-r--r--gcc45-mnocygwin.diff120
-rw-r--r--gcc45-peflags.diff12
-rw-r--r--gcc45-sig-unwind.diff90
-rw-r--r--gcc47-ada.patch (renamed from gcc45-ada.diff)609
-rw-r--r--gcc47-boehm-gc-cygwin.patch57
-rw-r--r--gcc47-cross-ecjx.patch52
-rw-r--r--gcc47-cross-jardir.patch22
-rw-r--r--gcc47-execstack.patch50
-rw-r--r--gcc47-java-jni.patch56
-rw-r--r--gcc47-libffi-noinst.patch53
-rw-r--r--gcc47-libstdc.patch (renamed from gcc45-libstdc.diff)438
-rw-r--r--gcc47-misc-core.patch27
-rw-r--r--gcc47-specs.patch87
-rw-r--r--gcc48-lto-plugin-soname.patch50
-rw-r--r--sources2
24 files changed, 1086 insertions, 1638 deletions
diff --git a/classpath-0.98-awt.patch b/classpath-0.98-awt.patch
deleted file mode 100644
index cd11702..0000000
--- a/classpath-0.98-awt.patch
+++ /dev/null
@@ -1,76 +0,0 @@
---- origsrc/gcc-4.5.0/libjava/classpath//examples/gnu/classpath/examples/awt/HintingDemo.java 2007-05-08 07:41:25.000000000 -0500
-+++ src/gcc-4.5.0/libjava/classpath//examples/gnu/classpath/examples/awt/HintingDemo.java 2009-12-06 01:58:25.091013300 -0600
-@@ -211,7 +211,7 @@ public class HintingDemo extends JFrame
-
- HintingDemo()
- {
-- File file = new File("/usr/share/fonts/truetype/freefont/FreeSans.ttf");
-+ File file = new File("/usr/share/fonts/TTF/Vera.ttf");
- loadFont(file);
- setLayout(new BorderLayout());
- chooser = new Chooser();
---- origsrc/gcc-4.5.0/libjava/classpath//gnu/java/awt/peer/ClasspathDesktopPeer.java 2007-03-02 15:01:39.000000000 -0600
-+++ src/gcc-4.5.0/libjava/classpath//gnu/java/awt/peer/ClasspathDesktopPeer.java 2009-12-06 01:58:25.106613400 -0600
-@@ -58,7 +58,7 @@ public class ClasspathDesktopPeer
- implements DesktopPeer
- {
- /** This is the fallback browser, if no desktop was detected. */
-- protected static final String _DEFAULT_BROWSER = "firefox";
-+ protected static final String _DEFAULT_BROWSER = "xdg-open";
-
- /** gnu.java.awt.peer.Desktop.html.command */
- protected static final String _BROWSE = "html";
---- origsrc/gcc-4.5.0/libjava/classpath//gnu/java/awt/peer/ClasspathFontPeer.java 2007-06-25 06:25:51.000000000 -0500
-+++ src/gcc-4.5.0/libjava/classpath//gnu/java/awt/peer/ClasspathFontPeer.java 2009-12-06 02:11:16.137745300 -0600
-@@ -158,6 +158,8 @@ public abstract class ClasspathFontPeer
-
- protected static boolean isLogicalFontName(String name)
- {
-+ return false;
-+/*
- String uname = name.toUpperCase ();
- return (uname.equals ("SANSSERIF") ||
- uname.equals ("SERIF") ||
-@@ -165,6 +167,7 @@ public abstract class ClasspathFontPeer
- uname.equals ("DIALOG") ||
- uname.equals ("DIALOGINPUT") ||
- uname.equals ("DEFAULT"));
-+*/
- }
-
- protected static String logicalFontNameToFaceName (String name)
---- origsrc/gcc-4.5.0/libjava/classpath//resource/gnu/java/awt/font/fonts.properties 2007-09-20 09:01:05.000000000 -0500
-+++ src/gcc-4.5.0/libjava/classpath//resource/gnu/java/awt/font/fonts.properties 2009-12-06 01:58:25.122213400 -0600
-@@ -36,20 +36,20 @@
- # exception statement from your version.
-
- # List of available fonts.
--FreeMono/p=/usr/share/fonts/truetype/freefont/FreeMono.ttf
--FreeMono/b=/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf
--FreeMono/bi=/usr/share/fonts/truetype/freefont/FreeMonoBoldOblique.ttf
--FreeMono/i=/usr/share/fonts/truetype/freefont/FreeMonoOblique.ttf
-+FreeMono/p=/usr/share/fonts/TTF/VeraMono.ttf
-+FreeMono/b=/usr/share/fonts/TTF/VeraMoBd.ttf
-+FreeMono/bi=/usr/share/fonts/TTF/VeraMoBI.ttf
-+FreeMono/i=/usr/share/fonts/TTF/VeraMoIt.ttf
-
--FreeSans/p=/usr/share/fonts/truetype/freefont/FreeSans.ttf
--FreeSans/b=/usr/share/fonts/truetype/freefont/FreeSansBold.ttf
--FreeSans/bi=/usr/share/fonts/truetype/freefont/FreeSansBoldOblique.ttf
--FreeSans/i=/usr/share/fonts/truetype/freefont/FreeSansOblique.ttf
-+FreeSans/p=/usr/share/fonts/TTF/Vera.ttf
-+FreeSans/b=/usr/share/fonts/TTF/VeraBd.ttf
-+FreeSans/bi=/usr/share/fonts/TTF/VeraBI.ttf
-+FreeSans/i=/usr/share/fonts/TTF/VeraIt.ttf
-
--FreeSerif/p=/usr/share/fonts/truetype/freefont/FreeSerif.ttf
--FreeSerif/b=/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf
--FreeSerif/bi=/usr/share/fonts/truetype/freefont/FreeSerifBoldOblique.ttf
--FreeSerif/i=/usr/share/fonts/truetype/freefont/FreeSerifOblique.ttf
-+FreeSerif/p=/usr/share/fonts/TTF/VeraSe.ttf
-+FreeSerif/b=/usr/share/fonts/TTF/VeraSeBd.ttf
-+FreeSerif/bi=/usr/share/fonts/TTF/VeraSeBd.ttf
-+FreeSerif/i=/usr/share/fonts/TTF/VeraSe.ttf
-
- # List of aliases.
- Dialog/a=FreeSans
diff --git a/config-rpath.patch b/config-rpath.patch
deleted file mode 100644
index 0f05fa0..0000000
--- a/config-rpath.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/config.rpath 2008-03-13 14:27:44.000000000 -0500
-+++ b/config.rpath 2010-07-11 23:30:45.209832800 -0500
-@@ -441,7 +441,7 @@ case "$host_os" in
- bsdi4*)
- ;;
- cygwin* | mingw* | pw32*)
-- shrext=.dll
-+ shrext=.dll.a
- ;;
- darwin* | rhapsody*)
- shrext=.dylib
diff --git a/cygwin-gcc.spec b/cygwin-gcc.spec
index 768ccff..41f00e3 100644
--- a/cygwin-gcc.spec
+++ b/cygwin-gcc.spec
@@ -1,15 +1,15 @@
%global gcc_major 4
-%global gcc_minor 5
+%global gcc_minor 7
%global gcc_micro 3
%global gcc_branch %{gcc_major}.%{gcc_minor}
%global gcc_version %{gcc_major}.%{gcc_minor}.%{gcc_micro}
# 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 4
+%global gcc_release 1
%global build_ada 0
# building cross-gnat requires matching X.Y version of native gnat
-%if 0%{?fedora} == 14
+%if 0%{?fedora} >= 17 && 0%{?fedora} < 19
%ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
%global build_ada 1
%endif
@@ -29,15 +29,15 @@ URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: texinfo
-BuildRequires: cygwin-filesystem
-BuildRequires: cygwin-binutils
-BuildRequires: cygwin
-BuildRequires: cygwin-w32api-headers
-BuildRequires: cygwin-w32api-libs
+BuildRequires: cygwin32-filesystem
+BuildRequires: cygwin32-binutils
+BuildRequires: cygwin32
+BuildRequires: cygwin32-w32api-headers
+BuildRequires: cygwin32-w32api-runtime
BuildRequires: gmp-devel
BuildRequires: mpfr-devel
BuildRequires: libmpc-devel
-BuildRequires: ppl-devel >= 0.10
+BuildRequires: ppl-devel >= 0.11
BuildRequires: cloog-ppl-devel >= 0.15
BuildRequires: zlib-devel
BuildRequires: flex
@@ -45,180 +45,189 @@ BuildRequires: flex
BuildRequires: gcc-gnat
%endif
%if %{build_java}
-BuildRequires: cygwin-libiconv
-BuildRequires: cygwin-zlib
+BuildRequires: cygwin32-libiconv
+BuildRequires: cygwin32-zlib
BuildRequires: gcc-c++
BuildRequires: gcc-java
%endif
-# NB: Explicit cygwin-filesystem dependency is REQUIRED here.
-Requires: cygwin-filesystem
-Requires: cygwin-binutils
-Requires: cygwin
-Requires: cygwin-w32api-libs
-Requires: cygwin-cpp
+Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{gcc_version}/gcc-%{gcc_version}.tar.bz2
+Patch1: gcc47-ada.patch
+Patch3: gcc47-libffi-noinst.patch
+Patch4: gcc47-libstdc.patch
+Patch7: gcc47-cross-jardir.patch
+Patch8: gcc45-cross-libstdc.patch
+Patch9: gcc47-cross-ecjx.patch
+Patch10: gcc45-java-FIONREAD.diff
+Patch13: gcc45-cross-exe-suffix.diff
+Patch14: gcc47-boehm-gc-cygwin.patch
+Patch15: gcc47-execstack.patch
+Patch16: gcc47-java-jni.patch
+Patch17: gcc47-specs.patch
+Patch19: gcc48-lto-plugin-soname.patch
+
+%description
+Cygwin cross-compiler (GCC) suite.
+
+
+%package -n cygwin32-gcc
+Summary: Cygwin cross-compiler for C
+Group: Development/Languages
+# NB: Explicit cygwin32-filesystem dependency is REQUIRED here.
+Requires: cygwin32-filesystem
+Requires: cygwin32-binutils
+Requires: cygwin32
+Requires: cygwin32-w32api-runtime
+Requires: cygwin32-cpp
# We don't run the automatic dependency scripts which would
# normally detect and provide the following DLL:
+Provides: cygwin32(cyggcc_s-1.dll)
+Provides: cygwin32(cyggomp-1.dll)
+Provides: cygwin32(cygquadmath-0.dll)
+Provides: cygwin32(cygssp-0.dll)
+# for backwards compatibility (libquadmath is new to 4.7)
Provides: cygwin(cyggcc_s-1.dll)
Provides: cygwin(cyggomp-1.dll)
Provides: cygwin(cygssp-0.dll)
-%if %{build_java}
-Provides: cygwin(cygffi-4.dll)
-%endif
-
-Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{gcc_version}/gcc-%{gcc_version}.tar.bz2
-Patch0: config-rpath.patch
-Patch1: gcc45-ada.diff
-Patch2: gcc45-ehdebug.diff
-Patch3: gcc45-libffi.diff
-Patch4: gcc45-libstdc.diff
-Patch5: gcc45-misc-core.diff
-Patch6: gcc45-mnocygwin.diff
-Patch7: gcc45-sig-unwind.diff
-Patch8: gcc45-cross-libstdc.patch
-Patch9: gcc45-cross-ecjx.patch
-Patch10: gcc45-java-FIONREAD.diff
-Patch11: classpath-0.98-awt.patch
-Patch12: gcc45-peflags.diff
-Patch13: gcc45-cross-exe-suffix.diff
-Patch14: gcc45-gc-win32-threads.diff
+Provides: %{name} = %{version}-%{release}
+Obsoletes: %{name} < 4.7
-%description
-Cygwin cross-compiler (GCC) for C.
+%description -n cygwin32-gcc
+Cygwin i686 cross-compiler (GCC) for C.
-%package -n cygwin-cpp
-Summary: Cygwin cross-C Preprocessor
-Group: Development/Languages
+%package -n cygwin32-cpp
+Summary: Cygwin cross-C Preprocessor
+Group: Development/Languages
+Provides: cygwin-cpp = %{version}-%{release}
+Obsoletes: cygwin-cpp < 4.7
-%description -n cygwin-cpp
+%description -n cygwin32-cpp
Cygwin cross-C Preprocessor
-%package c++
+%package -n cygwin32-gcc-c++
Summary: Cygwin cross-compiler for C++
Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
+Requires: cygwin32-gcc = %{version}-%{release}
# We don't run the automatic dependency scripts which would
# normally detect and provide the following DLL:
-Provides: cygwin(cygstdc++-6.dll)
+Provides: cygwin32(cygstdc++-6.dll)
+# for backwards compatibility
+Provides: cygwin(cygstdc++-6.dll)
+Provides: %{name}-c++ = %{version}-%{release}
+Obsoletes: %{name}-c++ < 4.7
-%description c++
+%description -n cygwin32-gcc-c++
Cygwin cross-compiler for C++.
-%package objc
+%package -n cygwin32-gcc-objc
Summary: Cygwin cross-compiler support for Objective C
Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
+Requires: cygwin32-gcc = %{version}-%{release}
# We don't run the automatic dependency scripts which would
# normally detect and provide the following DLL:
-Provides: cygwin(cygobjc-2.dll)
+Provides: cygwin32(cygobjc-4.dll)
+# for backwards compatibility (libobjc ABI version changed in 4.7)
+Provides: %{name}-objc = %{version}-%{release}
+Obsoletes: %{name}-objc < 4.7
-%description objc
+%description -n cygwin32-gcc-objc
Cygwin cross-compiler support for Objective C.
-%package objc++
+%package -n cygwin32-gcc-objc++
Summary: Cygwin cross-compiler support for Objective C++
Group: Development/Languages
-Requires: %{name}-c++ = %{version}-%{release}
-Requires: %{name}-objc = %{version}-%{release}
+Requires: cygwin32-gcc-c++ = %{version}-%{release}
+Requires: cygwin32-gcc-objc = %{version}-%{release}
+Provides: %{name}-objc++ = %{version}-%{release}
+Obsoletes: %{name}-objc++ < 4.7
-%description objc++
+%description -n cygwin32-gcc-objc++
Cygwin cross-compiler support for Objective C++.
-%package gfortran
+%package -n cygwin32-gcc-gfortran
Summary: Cygwin cross-compiler for FORTRAN
Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
+Requires: cygwin32-gcc = %{version}-%{release}
# We don't run the automatic dependency scripts which would
# normally detect and provide the following DLL:
-Provides: cygwin(cyggfortran-3.dll)
+Provides: cygwin32(cyggfortran-3.dll)
+# for backwards compatibilty
+Provides: cygwin(cyggfortran-3.dll)
+Provides: %{name}-gfortran = %{version}-%{release}
+Obsoletes: %{name}-gfortran < 4.7
-%description gfortran
+%description -n cygwin32-gcc-gfortran
Cygwin cross-compiler for FORTRAN.
-%package gnat
+%package -n cygwin32-gcc-gnat
Summary: Cygwin cross-compiler for Ada
Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
+Requires: cygwin32-gcc = %{version}-%{release}
# We don't run the automatic dependency scripts which would
# normally detect and provide the following DLL:
# (shared libgnat doesn't work quite right, nor does it cross-build
-#Provides: cygwin(cyggnat-4.5.dll)
-#Provides: cygwin(cyggnarl-4.5.dll)
+#Provides: cygwin32(cyggnat-4.7.dll)
+#Provides: cygwin32(cyggnarl-4.7.dll)
+# for backwards compatibility
+Provides: %{name}-gnat = %{version}-%{release}
+Obsoletes: %{name}-gnat < 4.7
-%description gnat
+%description -n cygwin32-gcc-gnat
Cygwin cross-compiler for Ada.
-%package java
+%package -n cygwin32-gcc-java
Summary: Cygwin cross-compiler for Java
Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
+Requires: cygwin32-gcc = %{version}-%{release}
Requires: ecj
-Requires: cygwin-libiconv
-Requires: cygwin-zlib
+Requires: cygwin32-libiconv
+Requires: cygwin32-zlib
# We don't run the automatic dependency scripts which would
# normally detect and provide the following DLL:
-Provides: cygwin(cyggcj-11.dll)
-Provides: cygwin(cyggcj-noncore-11.dll)
-Provides: cygwin(cyggcj-tools-11.dll)
-Provides: cygwin(cyggij-11.dll)
-Provides: cygwin(cygjvm.dll)
-
-%description java
+Provides: cygwin32(cyggcj-13.dll)
+Provides: cygwin32(cyggcj-noncore-13.dll)
+Provides: cygwin32(cyggcj-tools-13.dll)
+Provides: cygwin32(cyggij-13.dll)
+Provides: cygwin32(cygjvm.dll)
+Provides: %{name}-java = %{version}-%{release}
+Obsoletes: %{name}-java < 4.7
+
+%description -n cygwin32-gcc-java
Cygwin cross-compiler for Java.
%prep
%setup -q -n gcc-%{gcc_version}
-%patch0 -p1 -b .config-rpath~
-%patch2 -p2 -b .ehdebug~
-%patch4 -p2 -b .libstdc~
-%patch5 -p2 -b .misc-core~
-%patch6 -p2 -b .mnocygwin~
-%patch7 -p0 -b .sig-unwind~
-%patch8 -p1 -b .cross-libstdc~
-%if %{build_ada}
-%patch1 -p2 -b .ada~
-%endif
-%if %{build_java}
-%patch3 -p2 -b .libffi~
-%patch9 -p2 -b .cross-ecjx~
-%patch10 -p2 -b .java-fionread~
-%patch11 -p2 -b .awt~
-%endif
-%patch12 -p2 -b .peflags~
-%patch13 -p1 -b .exe-suffix~
-%patch14 -p1 -b .gc-win32-threads
+%patch1 -p2
+%patch3 -p2
+%patch4 -p2
+%patch7 -p2
+%patch8 -p1
+%patch9 -p1
+%patch10 -p2
+%patch13 -p1
+%patch14 -p2
+%patch15 -p2
+%patch16 -p2
+%patch17 -p2
+%patch19 -p2
echo %{gcc_version} > gcc/BASE-VER
echo 'Fedora Cygwin %{gcc_version}-%{gcc_release}' > gcc/DEV-PHASE
-# Install python files into arch-specific datadir
-sed \
- -e "s|^\(pythondir = \).*|\1%{_datadir}/gcc/%{_cygwin_target}/%{gcc_version}/python|" \
- -i libstdc++-v3/python/Makefile.{am,in}
-
-%if %{build_java}
-# 1) Install libgcj jar into arch-specific datadir
-# 2) gcc-java does not ship $host-gcj, and $_host != `gcc -dumpmachine`
-# (e.g. i?86-pc-linux-gnu vs. i686-redhat-linux)
-sed \
- -e '/^GCJ_FOR_ECJX =/ s|\@.*\@|gcj|' \
- -e "s|^\(jardir = \).*|\1%{_datadir}/gcc/%{_cygwin_target}/%{version}/java|" \
- -i libjava/Makefile.{am,in}
-%endif
%build
-mkdir -p build
-pushd build
+mkdir -p build_cyg32
+pushd build_cyg32
%if %{build_ada}
enablelada=,ada
@@ -237,21 +246,24 @@ CC="%{__cc} ${RPM_OPT_FLAGS}" \
--infodir=%{_infodir} \
--datadir=%{_datadir} \
--build=%_build --host=%_host \
- --target=%{_cygwin_target} \
+ --target=%{cygwin32_target} \
--with-arch=i686 --with-tune=generic \
--with-gnu-as --with-gnu-ld --verbose \
--disable-multilib \
--with-system-zlib \
+ --enable-shared --enable-shared-libgcc --enable-static \
--disable-nls --without-included-gettext \
--disable-win32-registry \
--enable-threads=posix \
--enable-version-specific-runtime-libs \
- --with-sysroot=%{_cygwin_sysroot} \
+ --with-sysroot=%{cygwin32_sysroot} \
--enable-shared --enable-shared-libgcc --disable-__cxa_atexit \
--with-dwarf2 --disable-sjlj-exceptions \
--enable-languages="c,c++,objc,obj-c++${enableljava},fortran${enablelada},lto" \
--enable-graphite --enable-lto --disable-symvers \
- --enable-libgomp --enable-libssp \
+ --enable-libgomp --disable-libitm --enable-libssp \
+ --enable-libquadmath --enable-libquadmath-support \
+ --with-python-dir=/share/gcc-%{gcc_version}/%{cygwin32_target}/python \
%if %{build_ada}
--enable-libada \
%endif
@@ -260,6 +272,7 @@ CC="%{__cc} ${RPM_OPT_FLAGS}" \
--enable-libgcj-sublibs --disable-jni --disable-java-awt \
--enable-default-preferences-peer=file \
--with-ecj-jar=%{_datadir}/java/ecj.jar \
+ --without-libiconv-prefix \
%endif
--with-bugurl=http://cygwinports.org
@@ -271,7 +284,7 @@ popd
%install
rm -rf $RPM_BUILD_ROOT
-pushd build
+pushd build_cyg32
make DESTDIR=$RPM_BUILD_ROOT install
# These files conflict with existing installed files.
@@ -282,55 +295,50 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man7/*
rm -fr $RPM_BUILD_ROOT%{_libdir}/gcj-%{version}-*
rm -fr $RPM_BUILD_ROOT%{_libdir}/logging.properties
rm -fr $RPM_BUILD_ROOT%{_libdir}/security/
-rm -f $RPM_BUILD_ROOT%{_datadir}/python/*
+rm -f $RPM_BUILD_ROOT%{_datadir}/gcc-%{gcc_version}/%{cygwin32_target}/python/*.py
+#rm -f $RPM_BUILD_ROOT%{_datadir}/gcc-%{gcc_version}/%{cygwin64_target}/python/*.py
%endif
-# This file is provided by cygwin-binutils-devel
-rm -f $RPM_BUILD_ROOT%{_prefix}/%{_cygwin_target}/lib/libiberty.a
+# This file is provided by cygwin32-libbfd
+rm -f $RPM_BUILD_ROOT%{_prefix}/%{cygwin32_target}/lib/libiberty.a
# These scripts are not intended for cross-compiling scenarios
%if %{build_java}
-rm -f $RPM_BUILD_ROOT%{_bindir}/%{_cygwin_target}-aot-compile
-rm -f $RPM_BUILD_ROOT%{_bindir}/%{_cygwin_target}-jcf-dump
-rm -f $RPM_BUILD_ROOT%{_bindir}/%{_cygwin_target}-rebuild-gcj-db
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-aot-compile*
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-g[^+cfn]*
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-gc-analyze*
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-gcj-dbtool*
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-gcjh*
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-gnative2ascii*
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-j*
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-rebuild-gcj-db*
-rm -f $RPM_BUILD_ROOT%{_mandir}/man3/%{_cygwin_target}-ffi*
+rm -f $RPM_BUILD_ROOT%{_bindir}/%{cygwin32_target}-aot-compile
+rm -f $RPM_BUILD_ROOT%{_bindir}/%{cygwin32_target}-jcf-dump
+rm -f $RPM_BUILD_ROOT%{_bindir}/%{cygwin32_target}-rebuild-gcj-db
+rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-aot-compile*
+rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-g[^+cfn]*
+rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-gc-analyze*
+rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-gcj-dbtool*
+rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-gcjh*
+rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-gnative2ascii*
+rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-j*
+rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-rebuild-gcj-db*
%endif
mkdir -p $RPM_BUILD_ROOT/lib
-ln -sf ..%{_prefix}/bin/%{_cygwin_target}-cpp \
- $RPM_BUILD_ROOT/lib/%{_cygwin_target}-cpp
+ln -sf ..%{_prefix}/bin/%{cygwin32_target}-cpp \
+ $RPM_BUILD_ROOT/lib/%{cygwin32_target}-cpp
# libtool installs DLL files of runtime libraries into $(libdir)/../bin,
-# but we need them in _cygwin_bindir.
-mkdir -p $RPM_BUILD_ROOT%{_cygwin_bindir}
-mv $RPM_BUILD_ROOT%{_bindir}/*.dll $RPM_BUILD_ROOT%{_cygwin_bindir}
+# but we need them in cygwin32_bindir.
+mkdir -p $RPM_BUILD_ROOT%{cygwin32_bindir}
+mv $RPM_BUILD_ROOT%{_libdir}/gcc/%{cygwin32_target}/*.dll \
+ $RPM_BUILD_ROOT%{_libdir}/gcc/%{cygwin32_target}/%{gcc_version}/*.dll \
+ $RPM_BUILD_ROOT%{cygwin32_bindir}
%if %{build_java}
-# move libffi
-mv $RPM_BUILD_ROOT%{_prefix}/%{_cygwin_target}/bin/*.dll \
- $RPM_BUILD_ROOT%{_cygwin_bindir}
# Move libgcj pkg-config files into sysroot
-mkdir -p $RPM_BUILD_ROOT%{_cygwin_libdir}/pkgconfig
+mkdir -p $RPM_BUILD_ROOT%{cygwin32_libdir}/pkgconfig
mv $RPM_BUILD_ROOT%{_libdir}/pkgconfig/* \
- $RPM_BUILD_ROOT%{_cygwin_libdir}/pkgconfig
+ $RPM_BUILD_ROOT%{cygwin32_libdir}/pkgconfig
%endif
# Don't want the *.la files.
find $RPM_BUILD_ROOT -name '*.la' -delete
-# As of gcc 4.5.0, the plugin/ directory gets created on an i686 host
-# but not on x86_64. Excluding it from the package for now.
-rm -rf $RPM_BUILD_ROOT%{_libdir}/gcc/%{_cygwin_target}/%{version}/plugin/
-
popd
@@ -338,169 +346,165 @@ popd
rm -rf $RPM_BUILD_ROOT
-%files
-%defattr(-,root,root,-)
-%{_bindir}/%{_cygwin_target}-gcc
-%{_bindir}/%{_cygwin_target}-gcc-%{version}
-%{_bindir}/%{_cygwin_target}-gccbug
-%{_bindir}/%{_cygwin_target}-gcov
-%if %{build_java}
-%{_prefix}/%{_cygwin_target}/lib/libffi.a
-%{_prefix}/%{_cygwin_target}/lib/libffi.dll.a
-%endif
-%dir %{_libdir}/gcc/%{_cygwin_target}
-%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/crtbegin.o
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/crtend.o
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/crtfastmath.o
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcc.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcc_eh.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcc_s.dll.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcov.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgomp.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgomp.dll.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgomp.spec
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libssp.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libssp_nonshared.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libssp.dll.a
-%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}/include
-%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}/include-fixed
-%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}/include/ssp
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include-fixed/README
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include-fixed/*.h
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/[^j]*.h
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/ssp/*.h
-%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}/install-tools
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/install-tools/*
-%dir %{_libexecdir}/gcc/%{_cygwin_target}/%{version}/install-tools
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/install-tools/*
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/lto1
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/lto-wrapper
-%dir %{_datadir}/gcc
-%dir %{_datadir}/gcc/%{_cygwin_target}
-%dir %{_datadir}/gcc/%{_cygwin_target}/%{version}
-%if %{build_java}
-%{_cygwin_bindir}/cygffi-4.dll
-%endif
-%{_cygwin_bindir}/cyggcc_s-1.dll
-%{_cygwin_bindir}/cyggomp-1.dll
-%{_cygwin_bindir}/cygssp-0.dll
-%{_mandir}/man1/%{_cygwin_target}-gcc.1*
-%{_mandir}/man1/%{_cygwin_target}-gcov.1*
+%files -n cygwin32-gcc
+%{_bindir}/%{cygwin32_target}-gcc
+%{_bindir}/%{cygwin32_target}-gcc-%{version}
+%{_bindir}/%{cygwin32_target}-gcc-ar
+%{_bindir}/%{cygwin32_target}-gcc-nm
+%{_bindir}/%{cygwin32_target}-gcc-ranlib
+%{_bindir}/%{cygwin32_target}-gcov
+%dir %{_libdir}/gcc/%{cygwin32_target}
+%dir %{_libdir}/gcc/%{cygwin32_target}/%{version}
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/crtbegin.o
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/crtend.o
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/crtfastmath.o
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgcc.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgcc_eh.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgcc_s.dll.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgcov.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgomp.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgomp.dll.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgomp.spec
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libquadmath.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libquadmath.dll.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libssp.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libssp_nonshared.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libssp.dll.a
+%dir %{_libdir}/gcc/%{cygwin32_target}/%{version}/include
+%dir %{_libdir}/gcc/%{cygwin32_target}/%{version}/include/ssp
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/[^j]*.h
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/ssp/*.h
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include-fixed/
+%dir %{_libdir}/gcc/%{cygwin32_target}/%{version}/install-tools
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/install-tools/*
+%dir %{_libexecdir}/gcc/%{cygwin32_target}/%{version}/install-tools
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/plugin/
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/install-tools/*
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/liblto_plugin.so
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/lto1
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/lto-wrapper
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/plugin/
+%dir %{_datadir}/gcc-%{gcc_version}
+%dir %{_datadir}/gcc-%{gcc_version}/%{cygwin32_target}
+%{cygwin32_bindir}/cyggcc_s-1.dll
+%{cygwin32_bindir}/cyggomp-1.dll
+%{cygwin32_bindir}/cygquadmath-0.dll
+%{cygwin32_bindir}/cygssp-0.dll
+%{_mandir}/man1/%{cygwin32_target}-gcc.1*
+%{_mandir}/man1/%{cygwin32_target}-gcov.1*
%doc gcc/README* gcc/COPYING*
-%files -n cygwin-cpp
+%files -n cygwin32-cpp
+/lib/%{cygwin32_target}-cpp
+%{_bindir}/%{cygwin32_target}-cpp
+%{_mandir}/man1/%{cygwin32_target}-cpp.1*
+%dir %{_libdir}/gcc/%{cygwin32_target}
+%dir %{_libdir}/gcc/%{cygwin32_target}/%{version}
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/cc1
+
+
+%files -n cygwin32-gcc-c++
+%{_bindir}/%{cygwin32_target}-g++
+%{_bindir}/%{cygwin32_target}-c++
+%{_mandir}/man1/%{cygwin32_target}-g++.1*
+%dir %{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/[^gjos]*
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/os*
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/s[^u]*
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libstdc++.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libstdc++.dll.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libstdc++.dll.a-gdb.py
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libsupc++.a
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/cc1plus
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/collect2
+%dir %{_datadir}/gcc-%{gcc_version}/%{cygwin32_target}/python
+%{_datadir}/gcc-%{gcc_version}/%{cygwin32_target}/python/libstdcxx/
+%{cygwin32_bindir}/cygstdc++-6.dll
+
+
+%files -n cygwin32-gcc-objc
%defattr(-,root,root,-)
-/lib/%{_cygwin_target}-cpp
-%{_bindir}/%{_cygwin_target}-cpp
-%{_mandir}/man1/%{_cygwin_target}-cpp.1*
-%dir %{_libdir}/gcc/%{_cygwin_target}
-%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/cc1
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/objc/
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libobjc.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libobjc.dll.a
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/cc1obj
+%{cygwin32_bindir}/cygobjc-4.dll
-%files c++
-%defattr(-,root,root,-)
-%{_bindir}/%{_cygwin_target}-g++
-%{_bindir}/%{_cygwin_target}-c++
-%{_mandir}/man1/%{_cygwin_target}-g++.1*
-%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/[^gjos]*
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/os*
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/s[^u]*
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libstdc++.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libstdc++.dll.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libstdc++.dll.a-gdb.py
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libsupc++.a
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/cc1plus
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/collect2
-%dir %{_datadir}/gcc/%{_cygwin_target}/%{version}/python
-%{_datadir}/gcc/%{_cygwin_target}/%{version}/python/libstdcxx/
-%{_cygwin_bindir}/cygstdc++-6.dll
-
-
-%files objc
+%files -n cygwin32-gcc-objc++
%defattr(-,root,root,-)
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/objc/
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libobjc.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libobjc.dll.a
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/cc1obj
-%{_cygwin_bindir}/cygobjc-2.dll
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/cc1objplus
-%files objc++
+%files -n cygwin32-gcc-gfortran
%defattr(-,root,root,-)
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/cc1objplus
-
-
-%files gfortran
-%defattr(-,root,root,-)
-%{_bindir}/%{_cygwin_target}-gfortran
-%{_mandir}/man1/%{_cygwin_target}-gfortran.1*
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgfortran.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgfortran.dll.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgfortranbegin.a
-%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}/finclude
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/finclude/omp_lib.f90
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/finclude/omp_lib.h
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/finclude/omp_lib.mod
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/finclude/omp_lib_kinds.mod
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/f951
-%{_cygwin_bindir}/cyggfortran-3.dll
+%{_bindir}/%{cygwin32_target}-gfortran
+%{_mandir}/man1/%{cygwin32_target}-gfortran.1*
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libcaf_single.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgfortran.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgfortran.dll.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgfortran.spec
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgfortranbegin.a
+%dir %{_libdir}/gcc/%{cygwin32_target}/%{version}/finclude
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/finclude/omp_lib.f90
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/finclude/omp_lib.h
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/finclude/omp_lib.mod
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/finclude/omp_lib_kinds.mod
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/f951
+%{cygwin32_bindir}/cyggfortran-3.dll
%if %{build_ada}
-%files gnat
-%defattr(-,root,root,-)
-%{_bindir}/%{_cygwin_target}-gnat*
-#%%{_mandir}/man1/%%{_cygwin_target}-gnat*.1*
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/adainclude/
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/adalib/
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/gnat1
-#%%{_cygwin_bindir}/cyggnarl-4.5.dll
-#%%{_cygwin_bindir}/cyggnat-4.5.dll
+%files -n cygwin32-gcc-gnat
+%{_bindir}/%{cygwin32_target}-gnat*
+#%%{_mandir}/man1/%%{cygwin32_target}-gnat*.1*
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/adainclude/
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/adalib/
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/gnat1
+#%%{cygwin32_bindir}/cyggnarl-4.7.dll
+#%%{cygwin32_bindir}/cyggnat-4.7.dll
%endif
%if %{build_java}
-%files java
+%files -n cygwin32-gcc-java
%defattr(-,root,root,-)
-%{_bindir}/%{_cygwin_target}-gcj
-%{_mandir}/man1/%{_cygwin_target}-gcj.1*
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/gcj/
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/gnu/
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/java/
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/javax/
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/org/
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/sun/
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/gcj/
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/jawt*.h
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/jni*.h
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/jvmpi.h
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj.dll.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj-noncore.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj-noncore.dll.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj.spec
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj-tools.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj-tools.dll.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgij.a
-%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgij.dll.a
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/ecj1
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/jc1
-%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/jvgenmain
-%{_cygwin_bindir}/cyggcj-11.dll
-%{_cygwin_bindir}/cyggcj-noncore-11.dll
-%{_cygwin_bindir}/cyggcj-tools-11.dll
-%{_cygwin_bindir}/cyggij-11.dll
-%{_cygwin_bindir}/cygjvm.dll
-%{_cygwin_libdir}/pkgconfig/libgcj-4.5.pc
-%{_datadir}/gcc/%{_cygwin_target}/%{version}/java
+%{_bindir}/%{cygwin32_target}-gcj
+%{_mandir}/man1/%{cygwin32_target}-gcj.1*
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/gcj/
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/gnu/
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/java/
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/javax/
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/org/
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/sun/
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/gcj/
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/jawt*.h
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/jni*.h
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/jvmpi.h
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgcj.dll.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgcj-noncore.dll.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgcj.spec
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgcj-tools.dll.a
+%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgij.dll.a
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/ecj1
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/jc1
+%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/jvgenmain
+%{cygwin32_bindir}/cyggcj-13.dll
+%{cygwin32_bindir}/cyggcj-noncore-13.dll
+%{cygwin32_bindir}/cyggcj-tools-13.dll
+%{cygwin32_bindir}/cyggij-13.dll
+%{cygwin32_bindir}/cygjvm.dll
+%{cygwin32_libdir}/pkgconfig/libgcj-4.7.pc
+%{_datadir}/gcc-%{gcc_version}/%{cygwin32_target}/java
%endif
%changelog
+* Thu Jun 27 2013 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - 4.7.3-1
+- Version bump.
+- Update for new Cygwin packaging scheme.
+
* Sun Aug 14 2011 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - 4.5.3-4
- Add .exe to unsuffixed output executables, as with the native compiler.
diff --git a/gcc45-cross-ecjx.patch b/gcc45-cross-ecjx.patch
deleted file mode 100644
index cca8271..0000000
--- a/gcc45-cross-ecjx.patch
+++ /dev/null
@@ -1,42 +0,0 @@
---- origsrc/gcc-4.5.2/libjava/Makefile.am 2010-07-15 07:05:56.000000000 -0500
-+++ src/gcc-4.5.2/libjava/Makefile.am 2011-01-11 16:17:07.828828300 -0600
-@@ -1124,10 +1124,17 @@ endif
- else !NATIVE
-
- ecjx_LINK = $(GCJ_FOR_ECJX_LINK) $(ecjx_LDFLAGS)
-+if INSTALL_ECJ_JAR
- ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
-+else
-+ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR)
-+endif
- ecjx_LDADD =
- ecjx_DEPENDENCIES =
-
-+ecjx.$(OBJEXT): ecjx.cc
-+ $(GCJ_FOR_ECJX) -c -o $@ $<
-+
- endif !NATIVE
-
- ## This is a dummy definition.
---- origsrc/gcc-4.5.2/libjava/Makefile.in 2010-12-16 06:49:03.000000000 -0600
-+++ src/gcc-4.5.2/libjava/Makefile.in 2011-01-11 16:18:06.282130200 -0600
-@@ -8515,7 +8515,8 @@ ECJX_BASE_FLAGS = -findirect-dispatch \
- @NATIVE_TRUE@ecjx_LINK = $(GCJLINK) $(ecjx_LDFLAGS)
- @ENABLE_SHARED_FALSE@@NATIVE_TRUE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) -fbootclasspath=$(BOOTCLASSPATH)
- @ENABLE_SHARED_TRUE@@NATIVE_TRUE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR)
--@NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
-+@INSTALL_ECJ_JAR_FALSE@@NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR)
-+@INSTALL_ECJ_JAR_TRUE@@NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
- @NATIVE_FALSE@ecjx_LDADD =
- @NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs $(extra_ldflags) \
- @NATIVE_TRUE@ $(am__append_31)
-@@ -12888,6 +12889,9 @@ write-entries-to-file-check:
- @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ >> tmp-0212; \
- @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ mv tmp-0212 $(srcdir)/gnu/gcj/convert/JIS0212.h
-
-+@NATIVE_FALSE@ecjx.$(OBJEXT): ecjx.cc
-+@NATIVE_FALSE@ $(GCJ_FOR_ECJX) -c -o $@ $<
-+
- src.zip:
- -rm -f src.zip
- here=`pwd`; \
diff --git a/gcc45-cross-exe-suffix.diff b/gcc45-cross-exe-suffix.diff
index 0a71b11..6fbddf8 100644
--- a/gcc45-cross-exe-suffix.diff
+++ b/gcc45-cross-exe-suffix.diff
@@ -1,7 +1,6 @@
--- a/gcc/gcc.c 2011-08-14 14:15:46.614869280 -0500
+++ b/gcc/gcc.c 2011-08-14 14:16:05.757302186 -0500
-@@ -98,8 +98,7 @@ compilation is specified by a string cal
- #endif
+@@ -98,6 +98,5 @@ compilation is specified by a string cal
/* By default there is no special suffix for target executables. */
-/* FIXME: when autoconf is fixed, remove the host check - dj */
@@ -9,4 +8,3 @@
+#if defined(TARGET_EXECUTABLE_SUFFIX)
#define HAVE_TARGET_EXECUTABLE_SUFFIX
#endif
-
diff --git a/gcc45-ehdebug.diff b/gcc45-ehdebug.diff
deleted file mode 100644
index 1534aa9..0000000
--- a/gcc45-ehdebug.diff
+++ /dev/null
@@ -1,157 +0,0 @@
-diff -pruN origsrc/gcc-4.5.0/gcc/unwind-dw2-fde.c src/gcc-4.5.0/gcc/unwind-dw2-fde.c
---- origsrc/gcc-4.5.0/gcc/unwind-dw2-fde.c 2009-09-20 12:03:33.000000000 +0100
-+++ src/gcc-4.5.0/gcc/unwind-dw2-fde.c 2010-04-19 04:28:35.406250000 +0100
-@@ -37,6 +37,8 @@ see the files COPYING3 and COPYING.RUNTI
- #include "gthr.h"
- #endif
-
-+#define __debug_unwind_enabled (0)
-+
- /* The unseen_objects list contains objects that have been registered
- but not yet categorized in any way. The seen_objects list has had
- its pc_begin and count fields initialized at minimum, and is sorted
-@@ -840,6 +842,8 @@ binary_search_unencoded_fdes (struct obj
- struct fde_vector *vec = ob->u.sort;
- size_t lo, hi;
-
-+ if (__debug_unwind_enabled) printf ("search fdes ob %p: vec %p count %d\n", ob, vec, vec->count);
-+
- for (lo = 0, hi = vec->count; lo < hi; )
- {
- size_t i = (lo + hi) / 2;
-@@ -849,6 +853,8 @@ binary_search_unencoded_fdes (struct obj
- memcpy (&pc_begin, (const void * const *) f->pc_begin, sizeof (void *));
- memcpy (&pc_range, (const uaddr *) f->pc_begin + 1, sizeof (uaddr));
-
-+if (__debug_unwind_enabled) printf ("fde#%d (%p): pc_begin %p pc_range %p\n", i, f, pc_begin, (void *)pc_range);
-+
- if (pc < pc_begin)
- hi = i;
- else if (pc >= pc_begin + pc_range)
-@@ -856,7 +862,7 @@ binary_search_unencoded_fdes (struct obj
- else
- return f;
- }
--
-+if (__debug_unwind_enabled) printf ("**not found\n");
- return NULL;
- }
-
-@@ -977,6 +983,8 @@ _Unwind_Find_FDE (void *pc, struct dwarf
- /* Linear search through the classified objects, to find the one
- containing the pc. Note that pc_begin is sorted descending, and
- we expect objects to be non-overlapping. */
-+ if (__debug_unwind_enabled) printf ("Search seen obs for pc %p: Bases t %p, d %p, func %p\n",
-+ pc, bases->tbase, bases->dbase, bases->func);
- for (ob = seen_objects; ob; ob = ob->next)
- if (pc >= ob->pc_begin)
- {
-@@ -987,6 +995,8 @@ _Unwind_Find_FDE (void *pc, struct dwarf
- }
-
- /* Classify and search the objects we've not yet processed. */
-+ if (__debug_unwind_enabled) printf ("Search unseen obs for pc %p: Bases t %p, d %p, func %p\n",
-+ pc, bases->tbase, bases->dbase, bases->func);
- while ((ob = unseen_objects))
- {
- struct object **p;
-@@ -1022,6 +1032,15 @@ _Unwind_Find_FDE (void *pc, struct dwarf
- read_encoded_value_with_base (encoding, base_from_object (encoding, ob),
- f->pc_begin, &func);
- bases->func = (void *) func;
-+
-+ if (__debug_unwind_enabled) printf ("Found fde %p: Bases t %p, d %p, func %p\n",
-+ f, bases->tbase, bases->dbase, bases->func);
-+
-+ }
-+ else
-+ {
-+ if (__debug_unwind_enabled) printf ("No fde %p: Bases t %p, d %p, func %p\n",
-+ f, bases->tbase, bases->dbase, bases->func);
- }
-
- return f;
-diff -pruN origsrc/gcc-4.5.0/gcc/unwind-dw2.c src/gcc-4.5.0/gcc/unwind-dw2.c
---- origsrc/gcc-4.5.0/gcc/unwind-dw2.c 2010-01-20 08:13:50.000000000 +0000
-+++ src/gcc-4.5.0/gcc/unwind-dw2.c 2010-04-19 04:28:35.421875000 +0100
-@@ -79,6 +79,7 @@ struct _Unwind_Context
-
- /* Byte size of every register managed by these routines. */
- static unsigned char dwarf_reg_size_table[DWARF_FRAME_REGISTERS+1];
-+#define __debug_unwind_enabled (0)
-
-
- /* Read unaligned data from the instruction buffer. */
-@@ -370,7 +371,7 @@ extract_cie_info (const struct dwarf_cie
- fs->retaddr_column = (_Unwind_Word)utmp;
- }
- fs->lsda_encoding = DW_EH_PE_omit;
--
-+if (__debug_unwind_enabled) printf ("extract cie: augmentation '%c'\n", *aug);
- /* If the augmentation starts with 'z', then a uleb128 immediately
- follows containing the length of the augmentation field following
- the size. */
-@@ -386,6 +387,7 @@ extract_cie_info (const struct dwarf_cie
- /* Iterate over recognized augmentation subsequences. */
- while (*aug != '\0')
- {
-+if (__debug_unwind_enabled) printf ("handle augmentation '%c'\n", *aug);
- /* "L" indicates a byte showing how the LSDA pointer is encoded. */
- if (aug[0] == 'L')
- {
-@@ -423,6 +425,7 @@ extract_cie_info (const struct dwarf_cie
- return ret;
- }
-
-+if (__debug_unwind_enabled) printf ("extract cie: augmentation done\n");
- return ret ? ret : p;
- }
-
-@@ -1568,9 +1571,25 @@ uw_identify_context (struct _Unwind_Cont
- return _Unwind_GetCFA (context) + _Unwind_IsSignalFrame (context);
- }
-
-+static _Unwind_Reason_Code
-+debug_unwind_trace (struct _Unwind_Context *ctx, void *arg)
-+{
-+ fflush (NULL);
-+ printf ("_Unwind_Context %p\n", ctx);
-+ printf (" cfa %p ra %p lsda %p\n", ctx->cfa, ctx->ra, ctx->lsda);
-+ printf (" bases: t %p d %p func %p\n", ctx->bases.tbase, ctx->bases.dbase, ctx->bases.func);
-+ printf ("\n");
-+ fflush (NULL);
-+ return _URC_NO_REASON;
-+}
-
- #include "unwind.inc"
-
-+void debug_dump_stack_trace (void *arg)
-+{
-+ _Unwind_Backtrace (debug_unwind_trace, arg);
-+}
-+
- #if defined (USE_GAS_SYMVER) && defined (SHARED) && defined (USE_LIBUNWIND_EXCEPTIONS)
- alias (_Unwind_Backtrace);
- alias (_Unwind_DeleteException);
-diff -pruN origsrc/gcc-4.5.0/gcc/unwind.inc src/gcc-4.5.0/gcc/unwind.inc
---- origsrc/gcc-4.5.0/gcc/unwind.inc 2009-04-09 16:00:19.000000000 +0100
-+++ src/gcc-4.5.0/gcc/unwind.inc 2010-04-19 04:28:35.421875000 +0100
-@@ -96,8 +96,9 @@ _Unwind_RaiseException(struct _Unwind_Ex
-
- /* Set up fs to describe the FDE for the caller of cur_context. The
- first time through the loop, that means __cxa_throw. */
-+if (__debug_unwind_enabled) printf ("Ctx: ra %p\n", cur_context.ra);
- code = uw_frame_state_for (&cur_context, &fs);
--
-+if (__debug_unwind_enabled) printf ("... code %d, perso %p\n", code, fs.personality);
- if (code == _URC_END_OF_STACK)
- /* Hit end of stack with no handler found. */
- return _URC_END_OF_STACK;
-@@ -112,6 +113,7 @@ _Unwind_RaiseException(struct _Unwind_Ex
- {
- code = (*fs.personality) (1, _UA_SEARCH_PHASE, exc->exception_class,
- exc, &cur_context);
-+if (__debug_unwind_enabled) printf ("perso returns code %d\n", code);
- if (code == _URC_HANDLER_FOUND)
- break;
- else if (code != _URC_CONTINUE_UNWIND)
diff --git a/gcc45-gc-win32-threads.diff b/gcc45-gc-win32-threads.diff
deleted file mode 100644
index f295272..0000000
--- a/gcc45-gc-win32-threads.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- gcc-4.5.3/libjava/boehm.cc.orig 2012-05-29 20:37:15.802823780 -0500
-+++ gcc-4.5.3/libjava/boehm.cc 2012-05-29 20:37:48.329821290 -0500
-@@ -747,7 +747,7 @@ _Jv_GCAttachThread ()
- // The registration interface is only defined on posixy systems and
- // only actually works if pthread_getattr_np is defined.
- // FIXME: until gc7 it is simpler to disable this on solaris.
--#if defined(HAVE_PTHREAD_GETATTR_NP) && !defined(GC_SOLARIS_THREADS)
-+#if defined(HAVE_PTHREAD_GETATTR_NP) && !defined(GC_SOLARIS_THREADS) && !defined(GC_WIN32_THREADS)
- GC_register_my_thread ();
- #endif
- }
-@@ -755,7 +755,7 @@ _Jv_GCAttachThread ()
- void
- _Jv_GCDetachThread ()
- {
--#if defined(HAVE_PTHREAD_GETATTR_NP) && !defined(GC_SOLARIS_THREADS)
-+#if defined(HAVE_PTHREAD_GETATTR_NP) && !defined(GC_SOLARIS_THREADS) && !defined(GC_WIN32_THREADS)
- GC_unregister_my_thread ();
- #endif
- }
diff --git a/gcc45-libffi.diff b/gcc45-libffi.diff
deleted file mode 100644
index a69cd9d..0000000
--- a/gcc45-libffi.diff
+++ /dev/null
@@ -1,63 +0,0 @@
-diff -pruN origsrc/gcc-4.5.0/libffi/Makefile.am src/gcc-4.5.0/libffi/Makefile.am
---- origsrc/gcc-4.5.0/libffi/Makefile.am 2009-12-31 17:44:32.000000000 +0000
-+++ src/gcc-4.5.0/libffi/Makefile.am 2010-04-22 04:55:33.078125000 +0100
-@@ -32,6 +32,11 @@ EXTRA_DIST = LICENSE ChangeLog.v1 Change
- src/pa/ffitarget.h src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
- src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c
-
-+# Where generated headers like ffitarget.h get installed.
-+gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
-+# There's probably already some other name for this directory.
-+toollibffidir := $(libdir)/gcc/$(target_alias)/$(gcc_version)
-+
- ## ################################################################
-
- ##
-diff -pruN origsrc/gcc-4.5.0/libffi/configure.ac src/gcc-4.5.0/libffi/configure.ac
---- origsrc/gcc-4.5.0/libffi/configure.ac 2010-03-15 19:36:26.000000000 +0000
-+++ src/gcc-4.5.0/libffi/configure.ac 2010-04-22 05:02:49.078125000 +0100
-@@ -83,7 +83,7 @@ case "$host" in
- i?86-win32* | i?86-*-cygwin* | i?86-*-mingw*)
- TARGET=X86_WIN32; TARGETDIR=x86
- # All mingw/cygwin/win32 builds require this for sharedlib
-- AM_LTLDFLAGS="-no-undefined"
-+ AM_LTLDFLAGS='-no-undefined -bindir $(bindir)'
- ;;
- i?86-*-darwin*)
- TARGET=X86_DARWIN; TARGETDIR=x86
-@@ -390,7 +390,7 @@ if test -n "$with_cross_host" &&
- toolexeclibdir='$(toolexecdir)/lib'
- else
- toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-- toolexeclibdir='$(libdir)'
-+ toolexeclibdir="${host__toolexeclibdir:-\$(libdir)}"
- fi
- multi_os_directory=`$CC -print-multi-os-directory`
- case $multi_os_directory in
-diff -pruN origsrc/gcc-4.5.0/libffi/configure.host src/gcc-4.5.0/libffi/configure.host
---- origsrc/gcc-4.5.0/libffi/configure.host 2004-08-30 16:43:03.000000000 +0100
-+++ src/gcc-4.5.0/libffi/configure.host 2010-04-22 04:55:33.078125000 +0100
-@@ -8,4 +8,8 @@ case "${host}" in
- frv*-elf)
- LDFLAGS=`echo $LDFLAGS | sed "s/\-B[^ ]*libgloss\/frv\///"`\ -B`pwd`/../libgloss/frv/
- ;;
-+ i?86-*-cygwin*)
-+ # Redirect installation to gcc private dir.
-+ host__toolexeclibdir='$(toollibffidir)'
-+ ;;
- esac
-diff -pruN origsrc/gcc-4.5.0/libffi/Makefile.in src/gcc-4.5.0/libffi/Makefile.in
---- origsrc/gcc-4.5.0/libffi/Makefile.in 2010-04-02 19:18:06.000000000 +0100
-+++ src/gcc-4.5.0/libffi/Makefile.in 2010-04-22 05:03:04.796875000 +0100
-@@ -417,6 +417,11 @@ EXTRA_DIST = LICENSE ChangeLog.v1 Change
- src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c
-
-
-+# Where generated headers like ffitarget.h get installed.
-+gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
-+# There's probably already some other name for this directory.
-+toollibffidir := $(libdir)/gcc/$(target_alias)/$(gcc_version)
-+
- # 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
- # friends when we are called from the top level Makefile.
diff --git a/gcc45-misc-core.diff b/gcc45-misc-core.diff
deleted file mode 100644
index 51cee37..0000000
--- a/gcc45-misc-core.diff
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -pruN origsrc/gcc-4.5.0/gcc/config/i386/cygwin.h src/gcc-4.5.0/gcc/config/i386/cygwin.h
---- origsrc/gcc-4.5.0/gcc/config/i386/cygwin.h 2010-04-02 20:54:46.000000000 +0100
-+++ src/gcc-4.5.0/gcc/config/i386/cygwin.h 2010-04-19 03:58:09.031250000 +0100
-@@ -303,3 +303,23 @@ while (0)
- /* We should find a way to not have to update this manually. */
- #define LIBGCJ_SONAME "cyggcj" /*LIBGCC_EH_EXTN*/ "-11.dll"
-
-+/* Make stack executable to avoid DEP problems with trampolines. */
-+#undef CYGWIN_ENABLE_EXECUTE_STACK
-+#define CYGWIN_ENABLE_EXECUTE_STACK \
-+extern void __enable_execute_stack (void *); \
-+void \
-+__enable_execute_stack (void *addr) \
-+{ \
-+ MEMORY_BASIC_INFORMATION b; \
-+ if (!VirtualQuery (addr, &b, sizeof(b))) \
-+ abort (); \
-+ VirtualProtect (b.BaseAddress, b.RegionSize, PAGE_EXECUTE_READWRITE, \
-+ &b.Protect); \
-+}
-+
-+#undef ENABLE_EXECUTE_STACK
-+#define ENABLE_EXECUTE_STACK CYGWIN_ENABLE_EXECUTE_STACK
-+
-+#ifdef IN_LIBGCC2
-+#include <windows.h>
-+#endif
-diff -pruN origsrc/gcc-4.5.0/gcc/cppdefault.c src/gcc-4.5.0/gcc/cppdefault.c
---- origsrc/gcc-4.5.0/gcc/cppdefault.c 2007-07-26 09:37:01.000000000 +0100
-+++ src/gcc-4.5.0/gcc/cppdefault.c 2010-04-19 04:28:35.406250000 +0100
-@@ -39,6 +39,8 @@
- # undef STANDARD_INCLUDE_DIR
- #else
- # undef CROSS_INCLUDE_DIR
-+# undef CROSS_INCLUDE_DIR_1
-+# undef CROSS_INCLUDE_DIR_2
- #endif
-
- const struct default_include cpp_include_defaults[]
-@@ -85,6 +87,14 @@ const struct default_include cpp_include
- /* One place the target system's headers might be. */
- { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
- #endif
-+#ifdef CROSS_INCLUDE_DIR_1
-+ /* One more place the target system's headers might be. */
-+ { CROSS_INCLUDE_DIR_1, "GCC", 0, 0, 0, 0 },
-+#endif
-+#ifdef CROSS_INCLUDE_DIR_2
-+ /* One more place the target system's headers might be. */
-+ { CROSS_INCLUDE_DIR_2, "GCC", 0, 0, 0, 0 },
-+#endif
- #ifdef TOOL_INCLUDE_DIR
- /* Another place the target system's headers might be. */
- { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
diff --git a/gcc45-mnocygwin.diff b/gcc45-mnocygwin.diff
deleted file mode 100644
index 3dd13b5..0000000
--- a/gcc45-mnocygwin.diff
+++ /dev/null
@@ -1,120 +0,0 @@
-diff -pruN origsrc/gcc-4.5.0/gcc/config.gcc src/gcc-4.5.0/gcc/config.gcc
---- origsrc/gcc-4.5.0/gcc/config.gcc 2010-04-07 11:34:00.000000000 +0100
-+++ src/gcc-4.5.0/gcc/config.gcc 2010-04-20 07:29:42.921875000 +0100
-@@ -1329,8 +1329,8 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*)
- target_gtfiles="\$(srcdir)/config/i386/winnt.c"
- extra_options="${extra_options} i386/cygming.opt"
- extra_objs="winnt.o winnt-stubs.o"
-- c_target_objs="${c_target_objs} cygwin2.o msformat-c.o"
-- cxx_target_objs="${cxx_target_objs} cygwin2.o winnt-cxx.o msformat-c.o"
-+ c_target_objs="${c_target_objs} msformat-c.o"
-+ cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
- extra_gcc_objs=cygwin1.o
- if test x$enable_threads = xyes; then
- thread_file='posix'
-diff -pruN origsrc/gcc-4.5.0/gcc/config/i386/cygwin1.c src/gcc-4.5.0/gcc/config/i386/cygwin1.c
---- origsrc/gcc-4.5.0/gcc/config/i386/cygwin1.c 2009-02-20 15:20:38.000000000 +0000
-+++ src/gcc-4.5.0/gcc/config/i386/cygwin1.c 2010-04-19 04:13:04.578125000 +0100
-@@ -38,16 +38,8 @@ mingw_scan (int argc ATTRIBUTE_UNUSED,
- putenv (xstrdup ("GCC_CYGWIN_WIN32=1"));
- else if (strcmp (*argv, "-mno-cygwin") == 0)
- {
-- char *p = strstr (*spec_machine, "-cygwin");
-- if (p)
-- {
-- int len = p - *spec_machine;
-- char *s = XNEWVEC (char, strlen (*spec_machine) + 3);
-- memcpy (s, *spec_machine, len);
-- strcpy (s + len, "-mingw32");
-- *spec_machine = s;
-- }
-- putenv (xstrdup ("GCC_CYGWIN_MINGW=1"));
-+ fatal ("The -mno-cygwin flag has been removed; use a "
-+ "mingw-targeted cross-compiler.\n");
- }
- return;
- }
-diff -pruN origsrc/gcc-4.5.0/gcc/config/i386/cygwin2.c src/gcc-4.5.0/gcc/config/i386/cygwin2.c
---- origsrc/gcc-4.5.0/gcc/config/i386/cygwin2.c 2007-08-02 11:49:31.000000000 +0100
-+++ src/gcc-4.5.0/gcc/config/i386/cygwin2.c 1970-01-01 00:00:00.000000000 +0000
-@@ -1,66 +0,0 @@
--/* Helper routines for cygwin-specific command-line parsing.
-- Contributed by Christopher Faylor (cgf@redhat.com)
-- Copyright 2003, 2007 Free Software Foundation, Inc.
--
--This file is part of GCC.
--
--GCC is free software; you can redistribute it and/or modify
--it under the terms of the GNU General Public License as published by
--the Free Software Foundation; either version 3, or (at your option)
--any later version.
--
--GCC is distributed in the hope that it will be useful,
--but WITHOUT ANY WARRANTY; without even the implied warranty of
--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--GNU General Public License for more details.
--
--You should have received a copy of the GNU General Public License
--along with GCC; see the file COPYING3. If not see
--<http://www.gnu.org/licenses/>. */
--
--#include "config.h"
--#include "system.h"
--#include "coretypes.h"
--#include "tm.h"
--
--#include "safe-ctype.h"
--#include <string.h>
--
--/*
--static void remove_w32api (void);
--*/
--static void add_mingw (void);
--static void set_mingw (void) __attribute__ ((constructor));
--
--static void
--add_mingw (void)
--{
-- char **av;
-- char *p;
-- for (av = cvt_to_mingw; *av; av++)
-- {
-- int sawcygwin = 0;
-- while ((p = strstr (*av, "-cygwin")))
-- {
-- char *over = p + sizeof ("-cygwin") - 1;
-- memmove (over + 1, over, strlen (over));
-- memcpy (p, "-mingw32", sizeof("-mingw32") - 1);
-- p = ++over;
-- while (ISALNUM (*p))
-- p++;
-- strcpy (over, p);
-- sawcygwin = 1;
-- }
-- if (!sawcygwin && !strstr (*av, "mingw"))
-- strcat (*av, CYGWIN_MINGW_SUBDIR);
-- }
--}
--
--
--static void
--set_mingw (void)
--{
-- char *env = getenv ("GCC_CYGWIN_MINGW");
-- if (env && *env == '1')
-- add_mingw ();
--}
-diff -pruN origsrc/gcc-4.5.0/gcc/config/i386/t-cygwin src/gcc-4.5.0/gcc/config/i386/t-cygwin
---- origsrc/gcc-4.5.0/gcc/config/i386/t-cygwin 2009-05-26 15:02:04.000000000 +0100
-+++ src/gcc-4.5.0/gcc/config/i386/t-cygwin 2010-04-19 04:28:35.406250000 +0100
-@@ -28,10 +28,6 @@ cygwin1.o: $(srcdir)/config/i386/cygwin1
- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
- $(srcdir)/config/i386/cygwin1.c
-
--cygwin2.o: $(srcdir)/config/i386/cygwin2.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-- $(TM_H) $(TM_P_H)
-- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-- $(srcdir)/config/i386/cygwin2.c
-
- # Cygwin-specific parts of LIB_SPEC
- SHLIB_LC = -lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32
diff --git a/gcc45-peflags.diff b/gcc45-peflags.diff
deleted file mode 100644
index 7b01c05..0000000
--- a/gcc45-peflags.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- origsrc/gcc-4.5.3/gcc/config/i386/cygwin.h 2011-07-10 00:52:31.709323700 -0500
-+++ src/gcc-4.5.3/gcc/config/i386/cygwin.h 2011-07-10 01:24:24.630654600 -0500
-@@ -126,7 +126,8 @@ along with GCC; see the file COPYING3.
- %{shared|mdll: --enable-auto-image-base -e \
- %{mno-cygwin:_DllMainCRTStartup@12} \
- %{!mno-cygwin:__cygwin_dll_entry@12}}\
-- %{!mno-cygwin:--dll-search-prefix=cyg -tsaware}"
-+ %{!mno-cygwin:--dll-search-prefix=cyg \
-+ %{!shared: %{!mdll: --large-address-aware --tsaware}}}"
-
- /* Allocate space for all of the machine-spec-specific stuff.
- Allocate enough space for cygwin -> mingw32 munging plus
diff --git a/gcc45-sig-unwind.diff b/gcc45-sig-unwind.diff
deleted file mode 100644
index 55776cb..0000000
--- a/gcc45-sig-unwind.diff
+++ /dev/null
@@ -1,90 +0,0 @@
-Contributed by the AdaCore guys on the gcc-patches list at:
-http://gcc.gnu.org/ml/gcc-patches/2010-03/msg01234.html
-
-
-2010-03-26 Eric Botcazou <ebotcazou@adacore.com>
- Olivier Hainque <hainque@adacore.com>
-
- * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
- of EBP. Do not restore reg #9. Remove +1 adjustment to EIP and set
- fs->signal_frame instead.
-
-
-Index: gcc/config/i386/w32-unwind.h
-===================================================================
---- gcc/config/i386/w32-unwind.h (revision 157721)
-+++ gcc/config/i386/w32-unwind.h (working copy)
-@@ -1,5 +1,5 @@
--/* Definitions for Dwarf2 EH unwind support for Windows32 targets
-- Copyright (C) 2007, 2009
-+/* Definitions for Dwarf2 EH unwind support for Windows32 targets
-+ Copyright (C) 2007, 2009, 2010
- Free Software Foundation, Inc.
- Contributed by Pascal Obry <obry@adacore.com>
-
-@@ -129,7 +129,6 @@ i386_w32_fallback_frame_state (struct _U
-
- /* In the test below we look for two specific patterns found
- experimentally to be in the Windows signal handler. */
--
- if (SIG_PAT1 || SIG_PAT2 || SIG_SEH1 || SIG_SEH2)
- {
- PEXCEPTION_POINTERS weinfo_;
-@@ -147,14 +146,12 @@ i386_w32_fallback_frame_state (struct _U
- }
-
- /* The new context frame address is the stack pointer. */
--
- new_cfa_ = proc_ctx_->Esp;
- fs->regs.cfa_how = CFA_REG_OFFSET;
- fs->regs.cfa_reg = __builtin_dwarf_sp_column();
- fs->regs.cfa_offset = new_cfa_ - (long) ctx_cfa_;
-
-- /* Save some registers. */
--
-+ /* Restore registers. */
- fs->regs.reg[0].how = REG_SAVED_OFFSET;
- fs->regs.reg[0].loc.offset = (long)&proc_ctx_->Eax - new_cfa_;
- fs->regs.reg[3].how = REG_SAVED_OFFSET;
-@@ -167,18 +164,13 @@ i386_w32_fallback_frame_state (struct _U
- fs->regs.reg[6].loc.offset = (long)&proc_ctx_->Esi - new_cfa_;
- fs->regs.reg[7].how = REG_SAVED_OFFSET;
- fs->regs.reg[7].loc.offset = (long)&proc_ctx_->Edi - new_cfa_;
-- fs->regs.reg[9].how = REG_SAVED_OFFSET;
-- fs->regs.reg[9].loc.offset = (long)&proc_ctx_->Eip - new_cfa_;
-- fs->regs.reg[4].how = REG_SAVED_OFFSET;
-- fs->regs.reg[4].loc.offset = (long)&proc_ctx_->Ebp - new_cfa_;
--
-- /* Set the return address to Eip + 1. As we can be called multiple
-- times we use another register for this. */
--
-- proc_ctx_->Dr0 = proc_ctx_->Eip + 1;
-+ fs->regs.reg[5].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[5].loc.offset = (long)&proc_ctx_->Ebp - new_cfa_;
- fs->regs.reg[8].how = REG_SAVED_OFFSET;
-- fs->regs.reg[8].loc.offset = (long)&proc_ctx_->Dr0 - new_cfa_;
-+ fs->regs.reg[8].loc.offset = (long)&proc_ctx_->Eip - new_cfa_;
- fs->retaddr_column = 8;
-+ fs->signal_frame = 1;
-+
- return _URC_NO_REASON;
- }
-
-@@ -186,7 +178,6 @@ i386_w32_fallback_frame_state (struct _U
- one of it's probes prior to the real SP adjustment. The only
- operations of interest performed is "pushl %ecx", followed by
- ecx clobbering. */
--
- else if (SIG_ALLOCA)
- {
- /* Only one push between entry in _alloca and the probe trap. */
-@@ -204,7 +195,8 @@ i386_w32_fallback_frame_state (struct _U
- fs->retaddr_column = 8;
- fs->regs.reg[8].how = REG_SAVED_OFFSET;
- fs->regs.reg[8].loc.offset = 0;
--
-+ fs->signal_frame = 1;
-+
- return _URC_NO_REASON;
- }
- else
diff --git a/gcc45-ada.diff b/gcc47-ada.patch
index a048130..ad67a4a 100644
--- a/gcc45-ada.diff
+++ b/gcc47-ada.patch
@@ -1,7 +1,6 @@
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/a-intnam-cygwin.ads src/gcc-4.5.0/gcc/ada/a-intnam-cygwin.ads
---- origsrc/gcc-4.5.0/gcc/ada/a-intnam-cygwin.ads 1970-01-01 00:00:00.000000000 +0000
-+++ src/gcc-4.5.0/gcc/ada/a-intnam-cygwin.ads 2010-04-19 06:08:12.000000000 +0100
-@@ -0,0 +1,168 @@
+--- origsrc/gcc-4.7.2/gcc/ada//a-intnam-cygwin.ads 1970-01-01 00:00:00.000000000 +0000
++++ src/gcc-4.7.2/gcc/ada//a-intnam-cygwin.ads 2012-11-01 21:17:31.000000000 +0000
+@@ -0,0 +1,170 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS --
@@ -10,25 +9,23 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/a-intnam-cygwin.ads src/gcc-4.5.0/gcc/ada/a
+-- --
+-- S p e c --
+-- --
-+-- Copyright (C) 1991-2005, Free Software Foundation, Inc. --
++-- Copyright (C) 1991-2011, Free Software Foundation, Inc. --
+-- --
+-- GNARL is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
-+-- ware Foundation; either version 2, or (at your option) any later ver- --
-+-- sion. GNARL is distributed in the hope that it will be useful, but WITH- --
++-- ware Foundation; either version 3, or (at your option) any later ver- --
++-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT 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 distributed with GNARL; see file COPYING. If not, write --
-+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
-+-- Boston, MA 02110-1301, USA. --
++-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
-+-- As a special exception, if other files instantiate generics from this --
-+-- unit, or you link this unit with other files to produce an executable, --
-+-- this unit does not by itself cause the resulting executable to be --
-+-- covered by the GNU General Public License. This exception does not --
-+-- however invalidate any other reasons why the executable file might be --
-+-- covered by the GNU Public License. --
++-- As a special exception 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 --
++-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNARL was developed by the GNARL team at Florida State University. --
+-- Extensive contributions were provided by Ada Core Technologies, Inc. --
@@ -60,6 +57,10 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/a-intnam-cygwin.ads src/gcc-4.5.0/gcc/ada/a
+
+package Ada.Interrupts.Names is
+
++ -- All identifiers in this unit are implementation defined
++
++ pragma Implementation_Defined;
++
+ -- Beware that the mapping of names to signals may be many-to-one. There
+ -- may be aliases. Also, for all signal names that are not supported on the
+ -- current system the value of the corresponding constant will be zero.
@@ -170,210 +171,9 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/a-intnam-cygwin.ads src/gcc-4.5.0/gcc/ada/a
+ System.OS_Interface.SIGPWR; -- Power failure
+
+end Ada.Interrupts.Names;
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/g-soccon-cygwin.ads src/gcc-4.5.0/gcc/ada/g-soccon-cygwin.ads
---- origsrc/gcc-4.5.0/gcc/ada/g-soccon-cygwin.ads 1970-01-01 00:00:00.000000000 +0000
-+++ src/gcc-4.5.0/gcc/ada/g-soccon-cygwin.ads 2010-04-19 06:08:12.000000000 +0100
-@@ -0,0 +1,196 @@
-+------------------------------------------------------------------------------
-+-- --
-+-- GNAT COMPILER COMPONENTS --
-+-- --
-+-- G N A T . S O C K E T S . C O N S T A N T S --
-+-- --
-+-- S p e c --
-+-- --
-+-- Copyright (C) 2000-2007, Free Software Foundation, Inc. --
-+-- --
-+-- GNAT is free software; you can redistribute it and/or modify it under --
-+-- terms of the GNU General Public License as published by the Free Soft- --
-+-- ware Foundation; either version 2, or (at your option) any later ver- --
-+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
-+-- OUT 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 distributed with GNAT; see file COPYING. If not, write --
-+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
-+-- Boston, MA 02110-1301, USA. --
-+-- --
-+-- As a special exception, if other files instantiate generics from this --
-+-- unit, or you link this unit with other files to produce an executable, --
-+-- this unit does not by itself cause the resulting executable to be --
-+-- covered by the GNU General Public License. This exception does not --
-+-- however invalidate any other reasons why the executable file might be --
-+-- covered by the GNU Public License. --
-+-- --
-+-- GNAT was originally developed by the GNAT team at New York University. --
-+-- Extensive contributions were provided by Ada Core Technologies Inc. --
-+-- --
-+------------------------------------------------------------------------------
-+
-+-- This package provides target dependent definitions of constant for use
-+-- by the GNAT.Sockets package (g-socket.ads). This package should not be
-+-- directly with'ed by an applications program.
-+
-+-- This is the version for Cygwin
-+-- This file is generated automatically, do not modify it by hand! Instead,
-+-- make changes to gen-soccon.c and re-run it on each target.
-+
-+package GNAT.Sockets.Constants is
-+
-+ --------------
-+ -- Families --
-+ --------------
-+
-+ AF_INET : constant := 2; -- IPv4 address family
-+ AF_INET6 : constant := 23; -- IPv6 address family
-+
-+ -----------
-+ -- Modes --
-+ -----------
-+
-+ SOCK_STREAM : constant := 1; -- Stream socket
-+ SOCK_DGRAM : constant := 2; -- Datagram socket
-+
-+ -------------------
-+ -- Socket errors --
-+ -------------------
-+
-+ EACCES : constant := 13; -- Permission denied
-+ EADDRINUSE : constant := 112; -- Address already in use
-+ EADDRNOTAVAIL : constant := 125; -- Cannot assign address
-+ EAFNOSUPPORT : constant := 106; -- Addr family not supported
-+ EALREADY : constant := 120; -- Operation in progress
-+ EBADF : constant := 9; -- Bad file descriptor
-+ ECONNABORTED : constant := 113; -- Connection aborted
-+ ECONNREFUSED : constant := 111; -- Connection refused
-+ ECONNRESET : constant := 104; -- Connection reset by peer
-+ EDESTADDRREQ : constant := 121; -- Destination addr required
-+ EFAULT : constant := 14; -- Bad address
-+ EHOSTDOWN : constant := 117; -- Host is down
-+ EHOSTUNREACH : constant := 118; -- No route to host
-+ EINPROGRESS : constant := 119; -- Operation now in progress
-+ EINTR : constant := 4; -- Interrupted system call
-+ EINVAL : constant := 22; -- Invalid argument
-+ EIO : constant := 5; -- Input output error
-+ EISCONN : constant := 127; -- Socket already connected
-+ ELOOP : constant := 92; -- Too many symbolic lynks
-+ EMFILE : constant := 24; -- Too many open files
-+ EMSGSIZE : constant := 122; -- Message too long
-+ ENAMETOOLONG : constant := 91; -- Name too long
-+ ENETDOWN : constant := 115; -- Network is down
-+ ENETRESET : constant := 126; -- Disconn. on network reset
-+ ENETUNREACH : constant := 114; -- Network is unreachable
-+ ENOBUFS : constant := 105; -- No buffer space available
-+ ENOPROTOOPT : constant := 109; -- Protocol not available
-+ ENOTCONN : constant := 128; -- Socket not connected
-+ ENOTSOCK : constant := 108; -- Operation on non socket
-+ EOPNOTSUPP : constant := 95; -- Operation not supported
-+ EPFNOSUPPORT : constant := 96; -- Unknown protocol family
-+ EPROTONOSUPPORT : constant := 123; -- Unknown protocol
-+ EPROTOTYPE : constant := 107; -- Unknown protocol type
-+ ESHUTDOWN : constant := 110; -- Cannot send once shutdown
-+ ESOCKTNOSUPPORT : constant := 124; -- Socket type not supported
-+ ETIMEDOUT : constant := 116; -- Connection timed out
-+ ETOOMANYREFS : constant := 129; -- Too many references
-+ EWOULDBLOCK : constant := 11; -- Operation would block
-+
-+ -----------------
-+ -- Host errors --
-+ -----------------
-+
-+ HOST_NOT_FOUND : constant := 1; -- Unknown host
-+ TRY_AGAIN : constant := 2; -- Host name lookup failure
-+ NO_DATA : constant := 4; -- No data record for name
-+ NO_RECOVERY : constant := 3; -- Non recoverable errors
-+
-+ -------------------
-+ -- Control flags --
-+ -------------------
-+
-+ FIONBIO : constant := -2147195266; -- Set/clear non-blocking io
-+ FIONREAD : constant := 1074030207; -- How many bytes to read
-+
-+ --------------------
-+ -- Shutdown modes --
-+ --------------------
-+
-+ SHUT_RD : constant := 0; -- No more recv
-+ SHUT_WR : constant := 1; -- No more send
-+ SHUT_RDWR : constant := 2; -- No more recv/send
-+
-+ ---------------------
-+ -- Protocol levels --
-+ ---------------------
-+
-+ SOL_SOCKET : constant := 65535; -- Options for socket level
-+ IPPROTO_IP : constant := 0; -- Dummy protocol for IP
-+ IPPROTO_UDP : constant := 17; -- UDP
-+ IPPROTO_TCP : constant := 6; -- TCP
-+
-+ -------------------
-+ -- Request flags --
-+ -------------------
-+
-+ MSG_OOB : constant := 1; -- Process out-of-band data
-+ MSG_PEEK : constant := 2; -- Peek at incoming data
-+ MSG_EOR : constant := -1; -- Send end of record
-+ MSG_WAITALL : constant := 8; -- Wait for full reception
-+ MSG_NOSIGNAL : constant := 32; -- No SIGPIPE on send
-+ MSG_Forced_Flags : constant := 0;
-+ -- Flags set on all send(2) calls
-+
-+ --------------------
-+ -- Socket options --
-+ --------------------
-+
-+ TCP_NODELAY : constant := 1; -- Do not coalesce packets
-+ SO_REUSEADDR : constant := 4; -- Bind reuse local address
-+ SO_REUSEPORT : constant := -1; -- Bind reuse port number
-+ SO_KEEPALIVE : constant := 8; -- Enable keep-alive msgs
-+ SO_LINGER : constant := 128; -- Defer close to flush data
-+ SO_BROADCAST : constant := 32; -- Can send broadcast msgs
-+ SO_SNDBUF : constant := 4097; -- Set/get send buffer size
-+ SO_RCVBUF : constant := 4098; -- Set/get recv buffer size
-+ SO_SNDTIMEO : constant := 4101; -- Emission timeout
-+ SO_RCVTIMEO : constant := 4102; -- Reception timeout
-+ SO_ERROR : constant := 4103; -- Get/clear error status
-+ IP_MULTICAST_IF : constant := 9; -- Set/get mcast interface
-+ IP_MULTICAST_TTL : constant := 10; -- Set/get multicast TTL
-+ IP_MULTICAST_LOOP : constant := 11; -- Set/get mcast loopback
-+ IP_ADD_MEMBERSHIP : constant := 12; -- Join a multicast group
-+ IP_DROP_MEMBERSHIP : constant := 13; -- Leave a multicast group
-+ IP_PKTINFO : constant := 19; -- Get datagram info
-+
-+ -------------------
-+ -- System limits --
-+ -------------------
-+
-+ IOV_MAX : constant := 1024; -- Maximum writev iovcnt
-+
-+ ----------------------
-+ -- Type definitions --
-+ ----------------------
-+
-+ -- Sizes (in bytes) of the components of struct timeval
-+
-+ SIZEOF_tv_sec : constant := 4; -- tv_sec
-+ SIZEOF_tv_usec : constant := 4; -- tv_usec
-+
-+ ----------------------------------------
-+ -- Properties of supported interfaces --
-+ ----------------------------------------
-+
-+ Need_Netdb_Buffer : constant := 0; -- Need buffer for Netdb ops
-+
-+ ----------------------
-+ -- Additional flags --
-+ ----------------------
-+
-+ Thread_Blocking_IO : constant Boolean := True;
-+ -- Set False for contexts where socket i/o are process blocking
-+
-+end GNAT.Sockets.Constants;
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/gcc-interface/Makefile.in src/gcc-4.5.0/gcc/ada/gcc-interface/Makefile.in
---- origsrc/gcc-4.5.0/gcc/ada/gcc-interface/Makefile.in 2010-04-22 12:15:21.859375000 +0100
-+++ src/gcc-4.5.0/gcc/ada/gcc-interface/Makefile.in 2010-04-22 12:20:07.875000000 +0100
-@@ -186,6 +186,13 @@ TARGET_ADA_SRCS =
+--- origsrc/gcc-4.7.2/gcc/ada//gcc-interface/Makefile.in 2012-11-02 15:16:49.765625000 +0000
++++ src/gcc-4.7.2/gcc/ada//gcc-interface/Makefile.in 2012-11-01 21:17:31.000000000 +0000
+@@ -191,6 +191,13 @@ TARGET_ADA_SRCS =
# Type of tools build we are doing; default is not compiling tools.
TOOLSCASE =
@@ -387,42 +187,49 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/gcc-interface/Makefile.in src/gcc-4.5.0/gcc
# Multilib handling
MULTISUBDIR =
RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
-@@ -1594,7 +1601,15 @@ ifeq ($(strip $(filter-out avr none powe
- indepsw.adb<indepsw-gnu.adb
+@@ -1583,6 +1590,12 @@ ifeq ($(strip $(filter-out avr none powe
endif
--ifeq ($(strip $(filter-out cygwin32% mingw32% pe,$(osys))),)
-+ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(osys))),)
-+
+ ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(osys))),)
+ # Set target pair suffix for mingw or cygwin
+ W32_TARG=mingw
+ ifneq ($(strip $(filter cygwin%,$(osys))),)
+ W32_TARG=cygwin
+ LIBGNAT_SHARED_LIB_PREFIX=cyg
+ endif
-+
- LIBGNAT_TARGET_PAIRS = \
- a-dirval.adb<a-dirval-mingw.adb \
- a-excpol.adb<a-excpol-abort.adb \
-@@ -1607,8 +1622,6 @@ ifeq ($(strip $(filter-out cygwin32% min
- s-tasinf.adb<s-tasinf-mingw.adb \
- s-tasinf.ads<s-tasinf-mingw.ads \
- g-bytswa.adb<g-bytswa-x86.adb \
-- g-socthi.ads<g-socthi-mingw.ads \
-- g-socthi.adb<g-socthi-mingw.adb \
- g-stsifd.adb<g-stsifd-sockets.adb \
- g-soliop.ads<g-soliop-mingw.ads
-
-@@ -1659,7 +1672,7 @@
- system.ads<system-mingw-x86_64.ads
+ # Cygwin provides a full Posix environment, and so we use the default
+ # versions of s-memory and g-socthi rather than the Windows-specific
+ # MinGW versions. Ideally we would use all the default versions for
+@@ -1651,24 +1664,24 @@ ifeq ($(strip $(filter-out cygwin% mingw
+ ifeq ($(strip $(MULTISUBDIR)),/32)
+ LIBGNAT_TARGET_PAIRS += \
+ $(X86_TARGET_PAIRS) \
+- system.ads<system-mingw.ads
++ system.ads<system-$(W32_TARG).ads
+ SO_OPTS= -m32 -Wl,-soname,
else
LIBGNAT_TARGET_PAIRS += \
+ $(X86_64_TARGET_PAIRS) \
+- system.ads<system-mingw-x86_64.ads
++ system.ads<system-$(W32_TARG)-x86_64.ads
+ SO_OPTS = -m64 -Wl,-soname,
+ endif
+ else
+ ifeq ($(strip $(MULTISUBDIR)),/64)
+ LIBGNAT_TARGET_PAIRS += \
+ $(X86_64_TARGET_PAIRS) \
+- system.ads<system-mingw-x86_64.ads
++ system.ads<system-$(W32_TARG)-x86_64.ads
+ SO_OPTS = -m64 -Wl,-soname,
+ else
+ LIBGNAT_TARGET_PAIRS += \
+ $(X86_TARGET_PAIRS) \
- system.ads<system-mingw.ads
+ system.ads<system-$(W32_TARG).ads
+ SO_OPTS = -m32 -Wl,-soname,
endif
endif
-
-@@ -1667,7 +1680,17 @@
+@@ -1677,7 +1690,14 @@ ifeq ($(strip $(filter-out cygwin% mingw
s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o
EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o
@@ -433,28 +240,26 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/gcc-interface/Makefile.in src/gcc-4.5.0/gcc
+
+ # Mingw uses winsock-based sockets; cygwin uses POSIX sockets.
+ ifneq ($(strip $(filter-out cygwin%,$(osys))),)
-+ LIBGNAT_TARGET_PAIRS += \
-+ g-socthi.ads<g-socthi-mingw.ads \
-+ g-socthi.adb<g-socthi-mingw.adb
+ MISCLIB = -lwsock32
+ endif
# ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT
# auto-import support for array/record will be done.
-@@ -1665,10 +1688,11 @@ ifeq ($(strip $(filter-out cygwin32% min
+@@ -1687,10 +1707,11 @@ ifeq ($(strip $(filter-out cygwin% mingw
endif
TOOLS_TARGET_PAIRS= \
- mlib-tgt-specific.adb<mlib-tgt-specific-mingw.adb \
+- indepsw.adb<indepsw-mingw.adb
+ mlib-tgt-specific.adb<mlib-tgt-specific-$(W32_TARG).adb \
- indepsw.adb<indepsw-mingw.adb
++ indepsw.adb<indepsw-$(W32_TARG).adb
GMEM_LIB = gmemlib
+ EH_MECHANISM=-gcc
EXTRA_GNATTOOLS = ../../gnatdll$(exeext)
EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o
soext = .dll
-@@ -2333,7 +2357,7 @@ gnatlink-re: link.o targext.o
+@@ -2425,7 +2446,7 @@ gnatlink-re: ../stamp-tools link.o targe
true; \
fi
@@ -463,7 +268,7 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/gcc-interface/Makefile.in src/gcc-4.5.0/gcc
# Create the directory before deleting it, in case the directory is
# a list of directories (as it may be on VMS). This ensures we are
# deleting the right one.
-@@ -2381,6 +2405,46 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD
+@@ -2472,6 +2493,46 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD
cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb
cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads
@@ -510,19 +315,23 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/gcc-interface/Makefile.in src/gcc-4.5.0/gcc
../stamp-gnatlib2-$(RTSDIR):
$(RM) $(RTSDIR)/s-*.ali
$(RM) $(RTSDIR)/s-*$(objext)
-@@ -2545,16 +2611,16 @@ gnatlib-shared-win32:
+@@ -2672,20 +2733,20 @@ gnatlib-shared-win32:
MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \
gnatlib
- $(RM) $(RTSDIR)/libgna*$(soext)
+ $(RM) $(RTSDIR)/$(LIBGNAT_SHARED_LIB_PREFIX)gna*$(soext)
- cd $(RTSDIR); ../../xgcc -B../../ -shared $(TARGET_LIBGCC2_CFLAGS) \
+ cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
+ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \
+ $(PICFLAG_FOR_TARGET) \
- -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
+ -o $(LIBGNAT_SHARED_LIB_PREFIX)gnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
- $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
+ $(SO_OPTS)$(LIBGNAT_SHARED_LIB_PREFIX)gnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
- cd $(RTSDIR); ../../xgcc -B../../ -shared $(TARGET_LIBGCC2_CFLAGS) \
+ cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
+ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \
+ $(PICFLAG_FOR_TARGET) \
- -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
+ -o $(LIBGNAT_SHARED_LIB_PREFIX)gnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
$(GNATRTL_TASKING_OBJS) \
@@ -533,22 +342,21 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/gcc-interface/Makefile.in src/gcc-4.5.0/gcc
gnatlib-shared-darwin:
$(MAKE) $(FLAGS_TO_PASS) \
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/gsocket.h src/gcc-4.5.0/gcc/ada/gsocket.h
---- origsrc/gcc-4.5.0/gcc/ada/gsocket.h 2010-04-22 12:15:21.890625000 +0100
-+++ src/gcc-4.5.0/gcc/ada/gsocket.h 2010-04-22 12:16:07.312500000 +0100
-@@ -217,7 +217,7 @@
- * VxWorks and VMS).
- */
+--- origsrc/gcc-4.7.2/gcc/ada//gsocket.h 2012-11-02 15:16:49.781250000 +0000
++++ src/gcc-4.7.2/gcc/ada//gsocket.h 2012-11-01 21:17:31.000000000 +0000
+@@ -204,7 +204,8 @@
+ #endif
--#if defined (_AIX) || defined (__FreeBSD__) || defined (__hpux__) || defined (__osf__) || defined (_WIN32) || defined (__APPLE__)
-+#if defined (_AIX) || defined (__FreeBSD__) || defined (__hpux__) || defined (__osf__) || defined (__CYGWIN__) || defined (_WIN32) || defined (__APPLE__)
+ #if defined (_AIX) || defined (__FreeBSD__) || defined (__hpux__) || \
+- defined (__osf__) || defined (_WIN32) || defined (__APPLE__)
++ defined (__osf__) || defined (_WIN32) || defined (__APPLE__) || \
++ defined (__CYGWIN__)
# define HAVE_THREAD_SAFE_GETxxxBYyyy 1
- #elif defined (sgi) || defined (linux) || defined (__GLIBC__) || (defined (sun) && defined (__SVR4) && !defined (__vxworks)) || defined(__rtems__)
- # define HAVE_GETxxxBYyyy_R 1
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/indepsw-cygwin.adb src/gcc-4.5.0/gcc/ada/indepsw-cygwin.adb
---- origsrc/gcc-4.5.0/gcc/ada/indepsw-cygwin.adb 1970-01-01 00:00:00.000000000 +0000
-+++ src/gcc-4.5.0/gcc/ada/indepsw-cygwin.adb 2010-04-19 06:08:12.000000000 +0100
-@@ -0,0 +1,69 @@
+
+ #elif defined (sgi) || defined (linux) || defined (__GLIBC__) || \
+--- origsrc/gcc-4.7.2/gcc/ada//indepsw-cygwin.adb 1970-01-01 00:00:00.000000000 +0000
++++ src/gcc-4.7.2/gcc/ada//indepsw-cygwin.adb 2012-11-01 21:17:31.000000000 +0000
+@@ -0,0 +1,67 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT COMPILER COMPONENTS --
@@ -558,25 +366,23 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/indepsw-cygwin.adb src/gcc-4.5.0/gcc/ada/in
+-- B o d y --
+-- (Windows version) --
+-- --
-+-- Copyright (C) 2004 Free Software Foundation, Inc. --
++-- Copyright (C) 2009 Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
-+-- ware Foundation; either version 2, or (at your option) any later ver- --
++-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT 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 distributed with GNAT; see file COPYING. If not, write --
-+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
-+-- Boston, MA 02110-1301, USA. --
++-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
-+-- As a special exception, if other files instantiate generics from this --
-+-- unit, or you link this unit with other files to produce an executable, --
-+-- this unit does not by itself cause the resulting executable to be --
-+-- covered by the GNU General Public License. This exception does not --
-+-- however invalidate any other reasons why the executable file might be --
-+-- covered by the GNU Public License. --
++-- As a special exception 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 --
++-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
@@ -618,9 +424,8 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/indepsw-cygwin.adb src/gcc-4.5.0/gcc/ada/in
+ end Is_Supported;
+
+end Indepsw;
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/initialize.c src/gcc-4.5.0/gcc/ada/initialize.c
---- origsrc/gcc-4.5.0/gcc/ada/initialize.c 2010-04-22 12:15:21.921875000 +0100
-+++ src/gcc-4.5.0/gcc/ada/initialize.c 2010-04-19 06:08:12.000000000 +0100
+--- origsrc/gcc-4.7.2/gcc/ada//initialize.c 2012-11-02 15:16:50.031250000 +0000
++++ src/gcc-4.7.2/gcc/ada//initialize.c 2012-11-01 21:17:31.000000000 +0000
@@ -348,6 +348,40 @@ __gnat_initialize (void *eh ATTRIBUTE_UN
__main ();
}
@@ -662,10 +467,9 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/initialize.c src/gcc-4.5.0/gcc/ada/initiali
#else
/* For all other versions of GNAT, the initialize routine and handler
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/mlib-tgt-cygwin.adb src/gcc-4.5.0/gcc/ada/mlib-tgt-cygwin.adb
---- origsrc/gcc-4.5.0/gcc/ada/mlib-tgt-cygwin.adb 1970-01-01 00:00:00.000000000 +0000
-+++ src/gcc-4.5.0/gcc/ada/mlib-tgt-cygwin.adb 2010-04-19 06:08:12.000000000 +0100
-@@ -0,0 +1,160 @@
+--- origsrc/gcc-4.7.2/gcc/ada//mlib-tgt-specific-cygwin.adb 1970-01-01 00:00:00.000000000 +0000
++++ src/gcc-4.7.2/gcc/ada//mlib-tgt-specific-cygwin.adb 2012-11-01 21:17:31.000000000 +0000
+@@ -0,0 +1,162 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT COMPILER COMPONENTS --
@@ -675,7 +479,7 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/mlib-tgt-cygwin.adb src/gcc-4.5.0/gcc/ada/m
+-- --
+-- B o d y --
+-- --
-+-- Copyright (C) 2002-2009, Free Software Foundation, Inc. --
++-- Copyright (C) 2002-2010, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
@@ -729,8 +533,10 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/mlib-tgt-cygwin.adb src/gcc-4.5.0/gcc/ada/m
+
+ function PIC_Option return String;
+
-+ No_Argument_List : constant String_List := (1 .. 0 => null);
-+ -- Used as value of parameter Options or Options2 in calls to Gcc
++ Shared_Libgcc : aliased String := "-shared-libgcc";
++
++ Shared_Libgcc_Switch : constant Argument_List :=
++ (1 => Shared_Libgcc'Access);
+
+ ---------------------------
+ -- Build_Dynamic_Library --
@@ -767,7 +573,7 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/mlib-tgt-cygwin.adb src/gcc-4.5.0/gcc/ada/m
+ Tools.Gcc
+ (Output_File => Lib_File,
+ Objects => Ofiles,
-+ Options => No_Argument_List,
++ Options => Shared_Libgcc_Switch,
+ Options_2 => Options,
+ Driver_Name => Driver_Name);
+ end Build_Dynamic_Library;
@@ -826,10 +632,9 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/mlib-tgt-cygwin.adb src/gcc-4.5.0/gcc/ada/m
+ Library_Major_Minor_Id_Supported_Ptr :=
+ Library_Major_Minor_Id_Supported'Access;
+end MLib.Tgt.Specific;
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-gloloc-cygwin.adb src/gcc-4.5.0/gcc/ada/s-gloloc-cygwin.adb
---- origsrc/gcc-4.5.0/gcc/ada/s-gloloc-cygwin.adb 1970-01-01 00:00:00.000000000 +0000
-+++ src/gcc-4.5.0/gcc/ada/s-gloloc-cygwin.adb 2010-04-19 06:08:12.000000000 +0100
-@@ -0,0 +1,113 @@
+--- origsrc/gcc-4.7.2/gcc/ada//s-gloloc-cygwin.adb 1970-01-01 00:00:00.000000000 +0000
++++ src/gcc-4.7.2/gcc/ada//s-gloloc-cygwin.adb 2012-11-01 21:17:31.000000000 +0000
+@@ -0,0 +1,107 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT COMPILER COMPONENTS --
@@ -838,25 +643,23 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-gloloc-cygwin.adb src/gcc-4.5.0/gcc/ada/s
+-- --
+-- B o d y --
+-- --
-+-- Copyright (C) 1999-2007, AdaCore --
++-- Copyright (C) 1999-2010, AdaCore --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
-+-- ware Foundation; either version 2, or (at your option) any later ver- --
++-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT 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 distributed with GNAT; see file COPYING. If not, write --
-+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
-+-- Boston, MA 02110-1301, USA. --
++-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
-+-- As a special exception, if other files instantiate generics from this --
-+-- unit, or you link this unit with other files to produce an executable, --
-+-- this unit does not by itself cause the resulting executable to be --
-+-- covered by the GNU General Public License. This exception does not --
-+-- however invalidate any other reasons why the executable file might be --
-+-- covered by the GNU Public License. --
++-- As a special exception 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 --
++-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
@@ -865,10 +668,11 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-gloloc-cygwin.adb src/gcc-4.5.0/gcc/ada/s
+
+-- This implementation is specific to NT
+
++with System.OS_Interface;
+with System.Task_Lock;
++with System.Win32;
+
+with Interfaces.C.Strings;
-+with System.OS_Interface;
+
+package body System.Global_Locks is
+
@@ -876,7 +680,7 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-gloloc-cygwin.adb src/gcc-4.5.0/gcc/ada/s
+ package OSI renames System.OS_Interface;
+ package ICS renames Interfaces.C.Strings;
+
-+ subtype Lock_File_Entry is OSI.HANDLE;
++ subtype Lock_File_Entry is Win32.HANDLE;
+
+ Last_Lock : Lock_Type := Null_Lock;
+ Lock_Table : array (Lock_Type range 1 .. 15) of Lock_File_Entry;
@@ -885,10 +689,7 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-gloloc-cygwin.adb src/gcc-4.5.0/gcc/ada/s
+ -- Create_Lock --
+ -----------------
+
-+ procedure Create_Lock
-+ (Lock : out Lock_Type;
-+ Name : String)
-+ is
++ procedure Create_Lock (Lock : out Lock_Type; Name : String) is
+ L : Lock_Type;
+
+ begin
@@ -902,7 +703,7 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-gloloc-cygwin.adb src/gcc-4.5.0/gcc/ada/s
+ end if;
+
+ Lock_Table (L) :=
-+ OSI.CreateMutex (null, OSI.BOOL (False), ICS.New_String (Name));
++ OSI.CreateMutex (null, Win32.FALSE, ICS.New_String (Name));
+ Lock := L;
+ end Create_Lock;
+
@@ -910,12 +711,11 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-gloloc-cygwin.adb src/gcc-4.5.0/gcc/ada/s
+ -- Acquire_Lock --
+ ------------------
+
-+ procedure Acquire_Lock
-+ (Lock : in out Lock_Type)
-+ is
-+ use type OSI.DWORD;
++ procedure Acquire_Lock (Lock : in out Lock_Type) is
++ use type Win32.DWORD;
++
++ Res : Win32.DWORD;
+
-+ Res : OSI.DWORD;
+ begin
+ Res := OSI.WaitForSingleObject (Lock_Table (Lock), OSI.Wait_Infinite);
+
@@ -928,25 +728,23 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-gloloc-cygwin.adb src/gcc-4.5.0/gcc/ada/s
+ -- Release_Lock --
+ ------------------
+
-+ procedure Release_Lock
-+ (Lock : in out Lock_Type)
-+ is
-+ use type OSI.BOOL;
++ procedure Release_Lock (Lock : in out Lock_Type) is
++ use type Win32.BOOL;
++
++ Res : Win32.BOOL;
+
-+ Res : OSI.BOOL;
+ begin
+ Res := OSI.ReleaseMutex (Lock_Table (Lock));
+
-+ if Res = OSI.False then
++ if Res = Win32.FALSE then
+ raise Lock_Error;
+ end if;
+ end Release_Lock;
+
+end System.Global_Locks;
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-osinte-cygwin.ads src/gcc-4.5.0/gcc/ada/s-osinte-cygwin.ads
---- origsrc/gcc-4.5.0/gcc/ada/s-osinte-cygwin.ads 1970-01-01 00:00:00.000000000 +0000
-+++ src/gcc-4.5.0/gcc/ada/s-osinte-cygwin.ads 2010-04-19 06:08:12.000000000 +0100
-@@ -0,0 +1,952 @@
+--- origsrc/gcc-4.7.2/gcc/ada//s-osinte-cygwin.ads 1970-01-01 00:00:00.000000000 +0000
++++ src/gcc-4.7.2/gcc/ada//s-osinte-cygwin.ads 2012-11-01 21:17:31.000000000 +0000
+@@ -0,0 +1,951 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS --
@@ -956,28 +754,26 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-osinte-cygwin.ads src/gcc-4.5.0/gcc/ada/s
+-- S p e c --
+-- --
+-- Copyright (C) 1991-1994, Florida State University --
-+-- Copyright (C) 1995-2007, Free Software Foundation, Inc. --
++-- Copyright (C) 1995-2010, Free Software Foundation, Inc. --
+-- --
-+-- GNARL is free software; you can redistribute it and/or modify it under --
++-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
-+-- ware Foundation; either version 2, or (at your option) any later ver- --
-+-- sion. GNARL is distributed in the hope that it will be useful, but WITH- --
++-- ware Foundation; either version 3, or (at your option) any later ver- --
++-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT 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 distributed with GNARL; see file COPYING. If not, write --
-+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
-+-- Boston, MA 02110-1301, USA. --
++-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
-+-- As a special exception, if other files instantiate generics from this --
-+-- unit, or you link this unit with other files to produce an executable, --
-+-- this unit does not by itself cause the resulting executable to be --
-+-- covered by the GNU General Public License. This exception does not --
-+-- however invalidate any other reasons why the executable file might be --
-+-- covered by the GNU Public License. --
++-- As a special exception 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 --
++-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNARL was developed by the GNARL team at Florida State University. --
-+-- Extensive contributions were provided by Ada Core Technologies, Inc. --
++-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
@@ -1074,7 +870,7 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-osinte-cygwin.ads src/gcc-4.5.0/gcc/ada/s
+
+ type Signal_Set is array (Natural range <>) of Signal;
+
-+ Unmasked : constant Signal_Set := (
++ Unmasked : constant Signal_Set := (
+ SIGTRAP,
+ -- To enable debugging on multithreaded applications, mark SIGTRAP to
+ -- be kept unmasked.
@@ -1128,12 +924,13 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-osinte-cygwin.ads src/gcc-4.5.0/gcc/ada/s
+ pragma Convention (C, siginfo_t);
+
+ type struct_sigaction is record
-+ sa_handler : System.Address;
-+ sa_mask : sigset_t;
-+ sa_flags : unsigned_long;
-+ sa_restorer : System.Address;
++ sa_handler : System.Address;
++ sa_mask : sigset_t;
++ sa_flags : unsigned_long;
++ sa_restorer : System.Address;
+ end record;
+ pragma Convention (C, struct_sigaction);
++
+ type struct_sigaction_ptr is access all struct_sigaction;
+
+ type Machine_State is record
@@ -1228,17 +1025,17 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-osinte-cygwin.ads src/gcc-4.5.0/gcc/ada/s
+ Ada.Unchecked_Conversion (System.Address, Thread_Body);
+
+ type pthread_t is new unsigned_long;
-+ subtype Thread_Id is pthread_t;
++ subtype Thread_Id is pthread_t;
+
-+ function To_pthread_t is new Ada.Unchecked_Conversion
-+ (unsigned_long, pthread_t);
++ function To_pthread_t is
++ new Ada.Unchecked_Conversion (unsigned_long, pthread_t);
+
-+ type pthread_mutex_t is limited private;
-+ type pthread_cond_t is limited private;
-+ type pthread_attr_t is limited private;
-+ type pthread_mutexattr_t is limited private;
-+ type pthread_condattr_t is limited private;
-+ type pthread_key_t is private;
++ type pthread_mutex_t is limited private;
++ type pthread_cond_t is limited private;
++ type pthread_attr_t is limited private;
++ type pthread_mutexattr_t is limited private;
++ type pthread_condattr_t is limited private;
++ type pthread_key_t is private;
+
+ PTHREAD_CREATE_DETACHED : constant := 1;
+
@@ -1899,10 +1696,9 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-osinte-cygwin.ads src/gcc-4.5.0/gcc/ada/s
+ end record;
+
+end System.OS_Interface;
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-taprop-cygwin.adb src/gcc-4.5.0/gcc/ada/s-taprop-cygwin.adb
---- origsrc/gcc-4.5.0/gcc/ada/s-taprop-cygwin.adb 1970-01-01 00:00:00.000000000 +0000
-+++ src/gcc-4.5.0/gcc/ada/s-taprop-cygwin.adb 2010-04-19 06:08:12.000000000 +0100
-@@ -0,0 +1,1339 @@
+--- origsrc/gcc-4.7.2/gcc/ada//s-taprop-cygwin.adb 1970-01-01 00:00:00.000000000 +0000
++++ src/gcc-4.7.2/gcc/ada//s-taprop-cygwin.adb 2012-11-01 21:17:31.000000000 +0000
+@@ -0,0 +1,1337 @@
+------------------------------------------------------------------------------
+-- --
+-- GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS --
@@ -1911,25 +1707,23 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-taprop-cygwin.adb src/gcc-4.5.0/gcc/ada/s
+-- --
+-- B o d y --
+-- --
-+-- Copyright (C) 1992-2007, Free Software Foundation, Inc. --
++-- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- --
+-- GNARL is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
-+-- ware Foundation; either version 2, or (at your option) any later ver- --
-+-- sion. GNARL is distributed in the hope that it will be useful, but WITH- --
++-- ware Foundation; either version 3, or (at your option) any later ver- --
++-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT 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 distributed with GNARL; see file COPYING. If not, write --
-+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
-+-- Boston, MA 02110-1301, USA. --
++-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
-+-- As a special exception, if other files instantiate generics from this --
-+-- unit, or you link this unit with other files to produce an executable, --
-+-- this unit does not by itself cause the resulting executable to be --
-+-- covered by the GNU General Public License. This exception does not --
-+-- however invalidate any other reasons why the executable file might be --
-+-- covered by the GNU Public License. --
++-- As a special exception 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 --
++-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNARL was developed by the GNARL team at Florida State University. --
+-- Extensive contributions were provided by Ada Core Technologies, Inc. --
@@ -3242,63 +3036,39 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/s-taprop-cygwin.adb src/gcc-4.5.0/gcc/ada/s
+ end Initialize;
+
+end System.Task_Primitives.Operations;
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/sysdep.c src/gcc-4.5.0/gcc/ada/sysdep.c
---- origsrc/gcc-4.5.0/gcc/ada/sysdep.c 2010-04-22 12:15:22.093750000 +0100
-+++ src/gcc-4.5.0/gcc/ada/sysdep.c 2010-04-19 06:08:12.000000000 +0100
-@@ -405,7 +405,7 @@ getc_immediate_common (FILE *stream,
+--- origsrc/gcc-4.7.2/gcc/ada//sysdep.c 2012-11-02 15:16:50.062500000 +0000
++++ src/gcc-4.7.2/gcc/ada//sysdep.c 2012-11-02 15:50:59.968750000 +0000
+@@ -311,7 +311,7 @@ getc_immediate_common (FILE *stream,
{
- #if defined (linux) || defined (sun) || defined (sgi) || defined (__EMX__) \
+ #if defined (linux) || defined (sun) || defined (sgi) \
|| (defined (__osf__) && ! defined (__alpha_vxworks)) \
- || defined (__CYGWIN32__) || defined (__MACHTEN__) || defined (__hpux__) \
+ || defined (__CYGWIN__) || defined (__MACHTEN__) || defined (__hpux__) \
|| defined (_AIX) || (defined (__svr4__) && defined (i386)) \
|| defined (__Lynx__) || defined (__FreeBSD__) || defined (__OpenBSD__) \
|| defined (__GLIBC__) || defined (__APPLE__)
-@@ -694,6 +694,40 @@ rts_get_nShowCmd (void)
+@@ -592,6 +592,18 @@ rts_get_nShowCmd (void)
}
#endif /* WINNT */
+
+#ifdef __CYGWIN__
+
++#include <malloc.h>
++
+size_t _msize(void *memblock)
+{
+ return (size_t) malloc_usable_size (memblock);
+}
+
-+#include <windows.h>
-+
-+int
-+__gnat_is_windows_xp (void)
-+{
-+ static int is_win_xp=0, is_win_xp_checked=0;
-+
-+ if (!is_win_xp_checked)
-+ {
-+ OSVERSIONINFO version;
-+
-+ is_win_xp_checked = 1;
-+
-+ memset (&version, 0, sizeof (version));
-+ version.dwOSVersionInfoSize = sizeof (version);
-+
-+ is_win_xp = GetVersionEx (&version)
-+ && version.dwPlatformId == VER_PLATFORM_WIN32_NT
-+ && (version.dwMajorVersion > 5
-+ || (version.dwMajorVersion == 5 && version.dwMinorVersion >= 1));
-+ }
-+ return is_win_xp;
-+}
-+
+#endif /* __CYGWIN__ */
+
#ifdef VMS
/* This gets around a problem with using the old threads library on VMS 7.0. */
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/system-cygwin.ads src/gcc-4.5.0/gcc/ada/system-cygwin.ads
---- origsrc/gcc-4.5.0/gcc/ada/system-cygwin.ads 1970-01-01 00:00:00.000000000 +0000
-+++ src/gcc-4.5.0/gcc/ada/system-cygwin.ads 2010-04-19 06:08:12.000000000 +0100
-@@ -0,0 +1,199 @@
+--- origsrc/gcc-4.7.2/gcc/ada//system-cygwin.ads 1970-01-01 00:00:00.000000000 +0000
++++ src/gcc-4.7.2/gcc/ada//system-cygwin.ads 2012-11-01 21:17:31.000000000 +0000
+@@ -0,0 +1,198 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
@@ -3443,7 +3213,6 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/system-cygwin.ads src/gcc-4.5.0/gcc/ada/sys
+ Suppress_Standard_Library : constant Boolean := False;
+ Use_Ada_Main_Program_Name : constant Boolean := False;
+ ZCX_By_Default : constant Boolean := True;
-+ GCC_ZCX_Support : constant Boolean := True;
+
+ ---------------------------
+ -- Underlying Priorities --
@@ -3498,15 +3267,3 @@ diff -pruN origsrc/gcc-4.5.0/gcc/ada/system-cygwin.ads src/gcc-4.5.0/gcc/ada/sys
+ -- System.Task_Primitives.Operations.
+
+end System;
-diff -pruN origsrc/gcc-4.5.0/gcc/ada/system-mingw.ads src/gcc-4.5.0/gcc/ada/system-mingw.ads
---- origsrc/gcc-4.5.0/gcc/ada/system-mingw.ads 2010-04-22 12:15:22.140625000 +0100
-+++ src/gcc-4.5.0/gcc/ada/system-mingw.ads 2010-04-19 06:08:12.000000000 +0100
-@@ -139,7 +139,7 @@ private
- Always_Compatible_Rep : constant Boolean := False;
- Suppress_Standard_Library : constant Boolean := False;
- Use_Ada_Main_Program_Name : constant Boolean := False;
-- ZCX_By_Default : constant Boolean := False;
-+ ZCX_By_Default : constant Boolean := True;
- GCC_ZCX_Support : constant Boolean := True;
-
- ---------------------------
diff --git a/gcc47-boehm-gc-cygwin.patch b/gcc47-boehm-gc-cygwin.patch
new file mode 100644
index 0000000..49f9ee0
--- /dev/null
+++ b/gcc47-boehm-gc-cygwin.patch
@@ -0,0 +1,57 @@
+--- origsrc/gcc-4.7.2/boehm-gc/win32_threads.c 2009-05-17 21:07:18.000000000 +0100
++++ src/gcc-4.7.2/boehm-gc/win32_threads.c 2013-03-31 19:34:57.203125000 +0100
+@@ -707,6 +707,54 @@ void * GC_start_routine(void * arg)
+ return(result);
+ }
+
++void GC_register_my_thread()
++{
++ GC_thread me;
++ pthread_t my_pthread;
++
++ my_pthread = pthread_self();
++# if DEBUG_CYGWIN_THREADS
++ GC_printf1("Attaching thread 0x%lx\n", my_pthread);
++ GC_printf1("pid = %ld\n", (long) getpid());
++# endif
++
++ /* Check to ensure this thread isn't attached already. */
++ LOCK();
++ me = GC_lookup_thread (my_pthread);
++ UNLOCK();
++ if (me != 0)
++ {
++# if DEBUG_CYGWIN_THREADS
++ GC_printf1("Attempt to re-attach known thread 0x%lx\n", my_pthread);
++# endif
++ return;
++ }
++
++ LOCK();
++ me = GC_new_thread();
++ me -> flags |= DETACHED;
++ me -> pthread_id = pthread_self();
++ UNLOCK();
++}
++
++void GC_unregister_my_thread()
++{
++ pthread_t my_pthread;
++ GC_thread me;
++
++ my_pthread = pthread_self();
++
++# if DEBUG_CYGWIN_THREADS
++ GC_printf1("Detaching thread 0x%lx\n", my_pthread);
++# endif
++
++ LOCK();
++ me = GC_lookup_thread(my_pthread);
++ UNLOCK();
++ GC_thread_exit_proc ((void *)me);
++}
++
++
+ void GC_thread_exit_proc(void *arg)
+ {
+ GC_thread me = (GC_thread)arg;
diff --git a/gcc47-cross-ecjx.patch b/gcc47-cross-ecjx.patch
new file mode 100644
index 0000000..16179d1
--- /dev/null
+++ b/gcc47-cross-ecjx.patch
@@ -0,0 +1,52 @@
+--- a/libjava/configure.ac 2013-06-27 23:25:19.370920178 -0500
++++ b/libjava/configure.ac 2013-06-27 23:25:44.904921607 -0500
+@@ -414,8 +414,8 @@ if test -n "${with_cross_host}"; then
+ # use ac_exeext, because that is for the target platform.
+ NATIVE=no
+ cross_host_exeext=
+- GCJ_FOR_ECJX="${with_cross_host}-gcj"
+- GCC_FOR_ECJX="${with_cross_host}-gcc"
++ GCJ_FOR_ECJX="gcj"
++ GCC_FOR_ECJX="gcc"
+ case "${with_cross_host}" in
+ *mingw* | *cygwin*)
+ cross_host_exeext=.exe
+--- a/libjava/configure 2013-06-27 23:25:22.521920354 -0500
++++ b/libjava/configure 2013-06-27 23:25:57.828922331 -0500
+@@ -6726,8 +6726,8 @@ if test -n "${with_cross_host}"; then
+ # use ac_exeext, because that is for the target platform.
+ NATIVE=no
+ cross_host_exeext=
+- GCJ_FOR_ECJX="${with_cross_host}-gcj"
+- GCC_FOR_ECJX="${with_cross_host}-gcc"
++ GCJ_FOR_ECJX="gcj"
++ GCC_FOR_ECJX="gcc"
+ case "${with_cross_host}" in
+ *mingw* | *cygwin*)
+ cross_host_exeext=.exe
+--- a/libjava/Makefile.am 2011-08-05 09:37:48.000000000 -0500
++++ b/libjava/Makefile.am 2012-06-12 02:57:16.508693300 -0500
+@@ -1167,7 +1167,11 @@ endif
+ else !NATIVE
+
+ ecjx_LINK = $(GCJ_FOR_ECJX_LINK) $(ecjx_LDFLAGS)
++if INSTALL_ECJ_JAR
+ ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
++else
++ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR)
++endif
+ ecjx_LDADD =
+ ecjx_DEPENDENCIES =
+ ecjx.$(OBJEXT): ecjx.cc
+--- a/libjava/Makefile.in 2012-06-12 03:04:48.185527700 -0500
++++ b/libjava/Makefile.in 2012-03-22 02:37:39.000000000 -0500
+@@ -8445,7 +8445,8 @@ ECJX_BASE_FLAGS = -findirect-dispatch \
+ @NATIVE_TRUE@ecjx_LINK = $(GCJLINK) $(ecjx_LDFLAGS)
+ @ENABLE_SHARED_FALSE@@NATIVE_TRUE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) -fbootclasspath=$(BOOTCLASSPATH)
+ @ENABLE_SHARED_TRUE@@NATIVE_TRUE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR)
+-@NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
++@INSTALL_ECJ_JAR_FALSE@@NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR)
++@INSTALL_ECJ_JAR_TRUE@@NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
+ @NATIVE_FALSE@ecjx_LDADD =
+ @NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs $(extra_ldflags) \
+ @NATIVE_TRUE@ $(am__append_28)
diff --git a/gcc47-cross-jardir.patch b/gcc47-cross-jardir.patch
new file mode 100644
index 0000000..899a273
--- /dev/null
+++ b/gcc47-cross-jardir.patch
@@ -0,0 +1,22 @@
+--- origsrc/gcc-4.7.0/libjava/Makefile.am 2011-08-05 09:37:48.000000000 -0500
++++ src/gcc-4.7.0/libjava/Makefile.am 2012-06-12 02:57:16.508693300 -0500
+@@ -223,7 +223,7 @@ dbexec_LTLIBRARIES = libjvm.la
+
+ pkgconfigdir = $(libdir)/pkgconfig
+
+-jardir = $(datadir)/java
++jardir = $(datadir)/gcc-$(gcc_version)/$(target_noncanonical)/java
+ jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar
+ if INSTALL_ECJ_JAR
+ jar_DATA += $(ECJ_BUILD_JAR)
+--- origsrc/gcc-4.7.0/libjava/Makefile.in 2012-06-12 03:04:48.185527700 -0500
++++ src/gcc-4.7.0/libjava/Makefile.in 2012-03-22 02:37:39.000000000 -0500
+@@ -938,7 +938,7 @@ CORE_PACKAGE_SOURCE_FILES_LO = $(filter-
+ @BUILD_SUBLIBS_TRUE@LIBJAVA_CORE_EXTRA = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@
+ dbexec_LTLIBRARIES = libjvm.la
+ pkgconfigdir = $(libdir)/pkgconfig
+-jardir = $(datadir)/java
++jardir = $(datadir)/gcc-$(gcc_version)/$(target_noncanonical)/java
+ jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar \
+ $(am__append_5)
+ @JAVA_HOME_SET_FALSE@JAVA_HOME_DIR = $(prefix)
diff --git a/gcc47-execstack.patch b/gcc47-execstack.patch
new file mode 100644
index 0000000..abfe828
--- /dev/null
+++ b/gcc47-execstack.patch
@@ -0,0 +1,50 @@
+--- origsrc/gcc-4.7.2/gcc/config/i386//cygming.opt 2011-04-01 15:43:22.000000000 +0100
++++ src/gcc-4.7.2/gcc/config/i386//cygming.opt 2012-11-01 20:56:56.406250000 +0000
+@@ -50,6 +50,10 @@ muse-libstdc-wrappers
+ Target Condition({defined (USE_CYGWIN_LIBSTDCXX_WRAPPERS)})
+ Compile code that relies on Cygwin DLL wrappers to support C++ operator new/delete replacement
+
++fset-stack-executable
++Common Report Var(flag_setstackexecutable) Init(1) Optimization
++For nested functions on stack executable permission is set.
++
+ posix
+ Driver
+
+--- origsrc/gcc-4.7.2/gcc/config/i386//cygwin.h 2012-11-01 20:55:58.250000000 +0000
++++ src/gcc-4.7.2/gcc/config/i386//cygwin.h 2012-11-01 20:11:22.000000000 +0000
+@@ -140,3 +140,11 @@ along with GCC; see the file COPYING3.
+ /* We should find a way to not have to update this manually. */
+ #define LIBGCJ_SONAME "cyggcj" /*LIBGCC_EH_EXTN*/ "-13.dll"
+
++/* Make stack executable to avoid DEP problems with trampolines. */
++#define HAVE_ENABLE_EXECUTE_STACK
++#undef CHECK_EXECUTE_STACK_ENABLED
++#define CHECK_EXECUTE_STACK_ENABLED flag_setstackexecutable
++
++#ifdef IN_LIBGCC2
++#include <windows.h>
++#endif
+--- origsrc/gcc-4.7.2/gcc/config/i386//mingw.opt 2011-04-01 15:43:22.000000000 +0100
++++ src/gcc-4.7.2/gcc/config/i386//mingw.opt 2012-11-01 20:57:00.296875000 +0000
+@@ -28,8 +28,4 @@ Wpedantic-ms-format
+ C ObjC C++ ObjC++ Var(warn_pedantic_ms_format) Init(1) Warning
+ Warn about none ISO msvcrt scanf/printf width extensions
+
+-fset-stack-executable
+-Common Report Var(flag_setstackexecutable) Init(1) Optimization
+-For nested functions on stack executable permission is set.
+-
+ ; Need to retain blank line above.
+--- origsrc/gcc-4.7.2/libgcc//config.host 2012-11-01 20:55:58.234375000 +0000
++++ src/gcc-4.7.2/libgcc//config.host 2012-11-01 20:11:20.000000000 +0000
+@@ -273,6 +273,9 @@ case ${host} in
+ i[34567]86-*-mingw* | x86_64-*-mingw*)
+ enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
+ ;;
++i[34567]86-*-cygwin* | x86_64-*-cygwin*)
++ enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
++ ;;
+ *)
+ enable_execute_stack=enable-execute-stack-empty.c;
+ ;;
diff --git a/gcc47-java-jni.patch b/gcc47-java-jni.patch
new file mode 100644
index 0000000..327bd70
--- /dev/null
+++ b/gcc47-java-jni.patch
@@ -0,0 +1,56 @@
+--- origsrc/gcc-4.5.0/libjava/classpath/configure.ac 2009-02-05 17:26:08.000000000 -0600
++++ src/gcc-4.5.0/libjava/classpath/configure.ac 2009-12-06 01:58:25.091013300 -0600
+@@ -26,7 +26,7 @@ case "$host_os" in
+ cp_module=""
+ ;;
+ *)
+- cp_module="-module"
++ cp_module="-module -avoid-version"
+ ;;
+ esac
+
+--- origsrc/gcc-4.7.2/libjava/classpath/configure 2011-11-29 14:12:00.000000000 -0600
++++ src/gcc-4.7.2/libjava/classpath/configure 2013-03-01 01:48:05.585762700 -0600
+@@ -3172,7 +3172,7 @@ case "$host_os" in
+ cp_module=""
+ ;;
+ *)
+- cp_module="-module"
++ cp_module="-module -avoid-version"
+ ;;
+ esac
+
+--- origsrc/gcc-4.7.2/libjava/include/posix.h 2011-01-03 14:52:22.000000000 -0600
++++ src/gcc-4.7.2/libjava/include/posix.h 2013-03-06 20:26:16.157459700 -0600
+@@ -47,11 +47,17 @@ details. */
+ #include <java/util/Properties.h>
+
+ // Prefix and suffix for shared libraries.
++#ifdef __CYGWIN__
++#define _Jv_platform_solib_prefix "cyg"
++#else
+ #define _Jv_platform_solib_prefix "lib"
++#endif
+ #if defined(__APPLE__) && defined(__MACH__)
+ #define _Jv_platform_solib_suffix ".dylib"
+ #elif defined(HPUX) && defined(HP_PA)
+ #define _Jv_platform_solib_suffix ".sl"
++#elif defined(__CYGWIN__)
++#define _Jv_platform_solib_suffix ".dll"
+ #else
+ #define _Jv_platform_solib_suffix ".so"
+ #endif
+--- origsrc/gcc-4.7.2/libjava/java/net/natVMURLConnection.cc 2009-12-01 16:05:25.000000000 -0600
++++ src/gcc-4.7.2/libjava/java/net/natVMURLConnection.cc 2013-03-06 20:20:42.202970700 -0600
+@@ -32,7 +32,11 @@ void
+ java::net::VMURLConnection::init ()
+ {
+ #if defined (HAVE_MAGIC_T) && defined (HAVE_MAGIC_H) && defined (USE_LTDL)
++#ifdef __CYGWIN__
++ lt_dlhandle handle = lt_dlopenext ("cygmagic-1.dll");
++#else
+ lt_dlhandle handle = lt_dlopenext ("libmagic.so");
++#endif
+ if (!handle)
+ return;
+
diff --git a/gcc47-libffi-noinst.patch b/gcc47-libffi-noinst.patch
new file mode 100644
index 0000000..3ac66ea
--- /dev/null
+++ b/gcc47-libffi-noinst.patch
@@ -0,0 +1,53 @@
+Only the convenience library is used in libjava, and the bundled version
+is usually a few releases behind the standalone version.
+
+--- origsrc/gcc-4.7.2/Makefile.in 2012-08-06 09:34:27.000000000 -0500
++++ src/gcc-4.7.2/Makefile.in 2013-03-10 21:27:05.825568600 -0500
+@@ -1573,7 +1573,6 @@ install-info-target: maybe-install-info-
+ install-info-target: maybe-install-info-target-libtermcap
+ install-info-target: maybe-install-info-target-winsup
+ install-info-target: maybe-install-info-target-libgloss
+-install-info-target: maybe-install-info-target-libffi
+ install-info-target: maybe-install-info-target-libjava
+ install-info-target: maybe-install-info-target-zlib
+ install-info-target: maybe-install-info-target-boehm-gc
+@@ -1651,7 +1650,6 @@ install-pdf-target: maybe-install-pdf-ta
+ install-pdf-target: maybe-install-pdf-target-libtermcap
+ install-pdf-target: maybe-install-pdf-target-winsup
+ install-pdf-target: maybe-install-pdf-target-libgloss
+-install-pdf-target: maybe-install-pdf-target-libffi
+ install-pdf-target: maybe-install-pdf-target-libjava
+ install-pdf-target: maybe-install-pdf-target-zlib
+ install-pdf-target: maybe-install-pdf-target-boehm-gc
+@@ -1729,7 +1727,6 @@ install-html-target: maybe-install-html-
+ install-html-target: maybe-install-html-target-libtermcap
+ install-html-target: maybe-install-html-target-winsup
+ install-html-target: maybe-install-html-target-libgloss
+-install-html-target: maybe-install-html-target-libffi
+ install-html-target: maybe-install-html-target-libjava
+ install-html-target: maybe-install-html-target-zlib
+ install-html-target: maybe-install-html-target-boehm-gc
+@@ -1807,7 +1804,6 @@ installcheck-target: maybe-installcheck-
+ installcheck-target: maybe-installcheck-target-libtermcap
+ installcheck-target: maybe-installcheck-target-winsup
+ installcheck-target: maybe-installcheck-target-libgloss
+-installcheck-target: maybe-installcheck-target-libffi
+ installcheck-target: maybe-installcheck-target-libjava
+ installcheck-target: maybe-installcheck-target-zlib
+ installcheck-target: maybe-installcheck-target-boehm-gc
+@@ -2402,7 +2398,6 @@ install-target: \
+ maybe-install-target-libtermcap \
+ maybe-install-target-winsup \
+ maybe-install-target-libgloss \
+- maybe-install-target-libffi \
+ maybe-install-target-libjava \
+ maybe-install-target-zlib \
+ maybe-install-target-boehm-gc \
+@@ -2500,7 +2495,6 @@ install-strip-target: \
+ maybe-install-strip-target-libtermcap \
+ maybe-install-strip-target-winsup \
+ maybe-install-strip-target-libgloss \
+- maybe-install-strip-target-libffi \
+ maybe-install-strip-target-libjava \
+ maybe-install-strip-target-zlib \
+ maybe-install-strip-target-boehm-gc \
diff --git a/gcc45-libstdc.diff b/gcc47-libstdc.patch
index 79bc0c6..45ff50e 100644
--- a/gcc45-libstdc.diff
+++ b/gcc47-libstdc.patch
@@ -1,9 +1,8 @@
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/config/os/mingw32/os_defines.h src/gcc-4.5.0/libstdc++-v3/config/os/mingw32/os_defines.h
---- origsrc/gcc-4.5.0/libstdc++-v3/config/os/mingw32/os_defines.h 2009-11-30 23:22:04.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/config/os/mingw32/os_defines.h 2010-04-19 05:11:01.671875000 +0100
-@@ -60,4 +60,10 @@
- // See libstdc++/37522.
- #define _GLIBCXX_HAVE_BROKEN_VSWPRINTF 1
+--- origsrc/gcc-4.7.2/libstdc++-v3/config/os/mingw32/os_defines.h 2011-12-16 18:43:06.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/config/os/mingw32/os_defines.h 2012-10-31 16:49:35.703125000 +0000
+@@ -72,4 +72,10 @@
+ #define _GLIBCXX_CDTOR_CALLABI __thiscall
+ #endif
+#ifdef _DLL
+#define _GLIBCXX_IMPORT __attribute__((dllimport))
@@ -12,9 +11,8 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/config/os/mingw32/os_defines.h src/gcc
+#endif
+
#endif
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/config/os/newlib/os_defines.h src/gcc-4.5.0/libstdc++-v3/config/os/newlib/os_defines.h
---- origsrc/gcc-4.5.0/libstdc++-v3/config/os/newlib/os_defines.h 2009-11-30 23:22:04.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/config/os/newlib/os_defines.h 2010-04-19 05:11:01.687500000 +0100
+--- origsrc/gcc-4.7.2/libstdc++-v3/config/os/newlib/os_defines.h 2011-01-03 20:52:22.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/config/os/newlib/os_defines.h 2012-10-31 16:49:35.734375000 +0000
@@ -35,6 +35,8 @@
#ifdef __CYGWIN__
@@ -38,21 +36,9 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/config/os/newlib/os_defines.h src/gcc-
#endif
#endif
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/configure.host src/gcc-4.5.0/libstdc++-v3/configure.host
---- origsrc/gcc-4.5.0/libstdc++-v3/configure.host 2009-11-30 23:22:04.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/configure.host 2010-04-19 05:11:01.703125000 +0100
-@@ -209,6 +209,7 @@ case "${host_os}" in
- ;;
- cygwin*)
- os_include_dir="os/newlib"
-+ OPT_LDFLAGS="-Wl,--exclude-modules-for-implib=\`cd ../libsupc++; ls *type_inf*.o -1 | tr '\012' ':'\`tinfo.o:tinfo2.o"
- OPT_LDFLAGS="${OPT_LDFLAGS} -no-undefined -bindir \$(bindir)"
- ;;
- darwin | darwin[1-7] | darwin[1-7].*)
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/backward/strstream src/gcc-4.5.0/libstdc++-v3/include/backward/strstream
---- origsrc/gcc-4.5.0/libstdc++-v3/include/backward/strstream 2010-03-16 22:34:53.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/include/backward/strstream 2010-04-19 05:11:01.703125000 +0100
-@@ -55,7 +55,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/backward/strstream 2011-02-01 01:31:42.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/backward/strstream 2012-10-31 16:49:37.468750000 +0000
+@@ -62,7 +62,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Class strstreambuf, a streambuf class that manages an array of char.
// Note that this class is not a template.
@@ -61,7 +47,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/backward/strstream src/gcc-4.5
{
public:
// Types.
-@@ -117,7 +117,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -124,7 +124,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
// Class istrstream, an istream that manages a strstreambuf.
@@ -70,7 +56,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/backward/strstream src/gcc-4.5
{
public:
explicit istrstream(char*);
-@@ -134,7 +134,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -141,7 +141,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
// Class ostrstream
@@ -79,7 +65,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/backward/strstream src/gcc-4.5
{
public:
ostrstream();
-@@ -151,7 +151,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -158,7 +158,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
// Class strstream
@@ -88,12 +74,11 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/backward/strstream src/gcc-4.5
{
public:
typedef char char_type;
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/basic_ios.tcc src/gcc-4.5.0/libstdc++-v3/include/bits/basic_ios.tcc
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/basic_ios.tcc 2009-04-09 16:00:19.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/basic_ios.tcc 2010-04-19 05:11:01.703125000 +0100
-@@ -175,10 +175,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/basic_ios.tcc 2011-03-04 21:51:56.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/basic_ios.tcc 2012-10-31 16:49:37.468750000 +0000
+@@ -176,10 +176,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
- // NB: This syntax is a GNU extension.
#if _GLIBCXX_EXTERN_TEMPLATE
- extern template class basic_ios<char>;
+ extern template class _GLIBCXX_IMPORT basic_ios<char>;
@@ -104,31 +89,30 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/basic_ios.tcc src/gcc-4.5
#endif
#endif
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/c++config src/gcc-4.5.0/libstdc++-v3/include/bits/c++config
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/c++config 2009-11-30 23:22:04.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/c++config 2010-04-19 05:11:01.718750000 +0100
-@@ -376,4 +376,8 @@ _GLIBCXX_END_NAMESPACE
- # endif
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/c++config 2011-11-02 04:23:33.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/c++config 2012-10-31 16:54:57.125000000 +0000
+@@ -225,6 +225,9 @@ namespace __gnu_cxx
+ # define _GLIBCXX_END_NAMESPACE_VERSION
#endif
+#ifndef _GLIBCXX_IMPORT
+#define _GLIBCXX_IMPORT
+#endif
-+
- // End of prewritten config; the discovered settings follow.
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/codecvt.h src/gcc-4.5.0/libstdc++-v3/include/bits/codecvt.h
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/codecvt.h 2010-02-10 05:45:24.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/codecvt.h 2010-04-19 05:11:01.750000000 +0100
-@@ -476,7 +476,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+
+ // Inline namespaces for special modes: debug, parallel, profile.
+ #if defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PARALLEL) \
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/codecvt.h 2011-10-14 01:12:40.000000000 +0100
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/codecvt.h 2012-10-31 16:49:37.484375000 +0000
+@@ -479,7 +479,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
- // NB: This syntax is a GNU extension.
#if _GLIBCXX_EXTERN_TEMPLATE
- extern template class codecvt_byname<char, char, mbstate_t>;
+ extern template class _GLIBCXX_IMPORT codecvt_byname<char, char, mbstate_t>;
extern template
const codecvt<char, char, mbstate_t>&
-@@ -487,7 +487,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -490,7 +490,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
has_facet<codecvt<char, char, mbstate_t> >(const locale&);
#ifdef _GLIBCXX_USE_WCHAR_T
@@ -137,12 +121,11 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/codecvt.h src/gcc-4.5.0/l
extern template
const codecvt<wchar_t, char, mbstate_t>&
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/fstream.tcc src/gcc-4.5.0/libstdc++-v3/include/bits/fstream.tcc
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/fstream.tcc 2009-04-09 16:00:19.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/fstream.tcc 2010-04-19 05:11:01.750000000 +0100
-@@ -908,16 +908,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/fstream.tcc 2011-03-04 21:51:56.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/fstream.tcc 2012-10-31 16:49:37.484375000 +0000
+@@ -965,16 +965,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
- // NB: This syntax is a GNU extension.
#if _GLIBCXX_EXTERN_TEMPLATE
- extern template class basic_filebuf<char>;
- extern template class basic_ifstream<char>;
@@ -165,10 +148,9 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/fstream.tcc src/gcc-4.5.0
#endif
#endif
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/ios_base.h src/gcc-4.5.0/libstdc++-v3/include/bits/ios_base.h
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/ios_base.h 2010-02-17 05:43:24.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/ios_base.h 2010-04-19 05:07:26.125000000 +0100
-@@ -204,7 +204,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/ios_base.h 2011-08-07 08:27:06.000000000 +0100
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/ios_base.h 2012-10-31 16:49:37.484375000 +0000
+@@ -198,7 +198,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* people will only see @c ios_base when they need to specify the full
* name of the various I/O flags (e.g., the openmodes).
*/
@@ -177,7 +159,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/ios_base.h src/gcc-4.5.0/
{
public:
-@@ -214,7 +214,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -208,7 +208,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
*
* 27.4.2.1.1 Class ios_base::failure
*/
@@ -186,7 +168,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/ios_base.h src/gcc-4.5.0/
{
public:
// _GLIBCXX_RESOLVE_LIB_DEFECTS
-@@ -529,7 +529,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -532,7 +532,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Used to initialize standard streams. In theory, g++ could use
// -finit-priority to order this stuff correctly without going
// through these machinations.
@@ -195,19 +177,18 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/ios_base.h src/gcc-4.5.0/
{
friend class ios_base;
public:
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/istream.tcc src/gcc-4.5.0/libstdc++-v3/include/bits/istream.tcc
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/istream.tcc 2009-09-05 01:18:07.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/istream.tcc 2010-04-19 05:11:01.750000000 +0100
-@@ -1018,7 +1018,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/istream.tcc 2011-03-04 21:51:56.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/istream.tcc 2012-10-31 16:49:37.484375000 +0000
+@@ -1039,7 +1039,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
- // NB: This syntax is a GNU extension.
#if _GLIBCXX_EXTERN_TEMPLATE
- extern template class basic_istream<char>;
+ extern template class _GLIBCXX_IMPORT basic_istream<char>;
extern template istream& ws(istream&);
extern template istream& operator>>(istream&, char&);
extern template istream& operator>>(istream&, char*);
-@@ -1041,10 +1041,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -1062,10 +1062,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
extern template istream& istream::_M_extract(long double&);
extern template istream& istream::_M_extract(void*&);
@@ -220,7 +201,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/istream.tcc src/gcc-4.5.0
extern template wistream& ws(wistream&);
extern template wistream& operator>>(wistream&, wchar_t&);
extern template wistream& operator>>(wistream&, wchar_t*);
-@@ -1063,7 +1063,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -1084,7 +1084,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
extern template wistream& wistream::_M_extract(long double&);
extern template wistream& wistream::_M_extract(void*&);
@@ -229,10 +210,9 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/istream.tcc src/gcc-4.5.0
#endif
#endif
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.h src/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.h
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.h 2010-02-17 05:43:24.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.h 2010-04-19 05:11:01.765625000 +0100
-@@ -59,7 +59,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/locale_classes.h 2011-12-10 15:33:06.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/locale_classes.h 2012-10-31 16:49:37.484375000 +0000
+@@ -61,7 +61,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* This library supports efficient construction and copying of locales
* through a reference counting implementation of the locale class.
*/
@@ -241,7 +221,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.h src/gcc-
{
public:
// Types:
-@@ -67,9 +67,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -69,9 +69,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typedef int category;
// Forward decls and friends:
@@ -254,7 +234,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.h src/gcc-
friend class facet;
friend class _Impl;
-@@ -334,7 +334,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -337,7 +337,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
*
* Facets may not be copied or assigned.
*/
@@ -263,7 +243,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.h src/gcc-
{
private:
friend class locale;
-@@ -429,7 +429,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -435,7 +435,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* cannot be used in a locale. The locale::id ensures that each class
* type gets a unique identifier.
*/
@@ -272,7 +252,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.h src/gcc-
{
private:
friend class locale;
-@@ -468,7 +468,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -474,7 +474,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Implementation object for locale.
@@ -281,12 +261,11 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.h src/gcc-
{
public:
// Friends.
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.tcc src/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.tcc
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.tcc 2009-04-18 22:19:18.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.tcc 2010-04-19 05:11:01.765625000 +0100
-@@ -241,8 +241,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/locale_classes.tcc 2011-12-10 15:33:06.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/locale_classes.tcc 2012-10-31 16:49:37.500000000 +0000
+@@ -265,8 +265,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
- // NB: This syntax is a GNU extension.
#if _GLIBCXX_EXTERN_TEMPLATE
- extern template class collate<char>;
- extern template class collate_byname<char>;
@@ -295,7 +274,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.tcc src/gc
extern template
const collate<char>&
-@@ -253,8 +253,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -277,8 +277,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
has_facet<collate<char> >(const locale&);
#ifdef _GLIBCXX_USE_WCHAR_T
@@ -306,10 +285,9 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_classes.tcc src/gc
extern template
const collate<wchar_t>&
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets.h src/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets.h
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets.h 2010-02-19 03:30:46.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets.h 2010-04-19 05:11:01.765625000 +0100
-@@ -670,7 +670,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/locale_facets.h 2012-02-23 22:14:56.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/locale_facets.h 2012-10-31 16:49:37.500000000 +0000
+@@ -673,7 +673,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* optimizations as well.
*/
template<>
@@ -318,7 +296,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets.h src/gcc-4
{
public:
// Types:
-@@ -1171,7 +1171,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -1174,7 +1174,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* __ctype_abstract_base<wchar_t>.
*/
template<>
@@ -327,56 +305,54 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets.h src/gcc-4
{
public:
// Types:
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets.tcc src/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets.tcc
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets.tcc 2009-07-18 23:58:10.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets.tcc 2010-04-19 05:11:01.781250000 +0100
-@@ -1276,11 +1276,11 @@ _GLIBCXX_END_LDBL_NAMESPACE
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/locale_facets.tcc 2011-03-04 21:51:56.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/locale_facets.tcc 2012-10-31 17:00:42.531250000 +0000
+@@ -1277,11 +1277,11 @@ _GLIBCXX_END_NAMESPACE_LDBL
+ // Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
- // NB: This syntax is a GNU extension.
#if _GLIBCXX_EXTERN_TEMPLATE
- extern template class numpunct<char>;
- extern template class numpunct_byname<char>;
-- extern template class _GLIBCXX_LDBL_NAMESPACE num_get<char>;
-- extern template class _GLIBCXX_LDBL_NAMESPACE num_put<char>;
+- extern template class _GLIBCXX_NAMESPACE_LDBL num_get<char>;
+- extern template class _GLIBCXX_NAMESPACE_LDBL num_put<char>;
- extern template class ctype_byname<char>;
+ extern template class _GLIBCXX_IMPORT numpunct<char>;
+ extern template class _GLIBCXX_IMPORT numpunct_byname<char>;
-+ extern template class _GLIBCXX_IMPORT _GLIBCXX_LDBL_NAMESPACE num_get<char>;
-+ extern template class _GLIBCXX_IMPORT _GLIBCXX_LDBL_NAMESPACE num_put<char>;
++ extern template class _GLIBCXX_IMPORT _GLIBCXX_NAMESPACE_LDBL num_get<char>;
++ extern template class _GLIBCXX_IMPORT _GLIBCXX_NAMESPACE_LDBL num_put<char>;
+ extern template class _GLIBCXX_IMPORT ctype_byname<char>;
extern template
const ctype<char>&
-@@ -1315,11 +1315,11 @@ _GLIBCXX_END_LDBL_NAMESPACE
+@@ -1316,11 +1316,11 @@ _GLIBCXX_END_NAMESPACE_LDBL
has_facet<num_get<char> >(const locale&);
#ifdef _GLIBCXX_USE_WCHAR_T
- extern template class numpunct<wchar_t>;
- extern template class numpunct_byname<wchar_t>;
-- extern template class _GLIBCXX_LDBL_NAMESPACE num_get<wchar_t>;
-- extern template class _GLIBCXX_LDBL_NAMESPACE num_put<wchar_t>;
+- extern template class _GLIBCXX_NAMESPACE_LDBL num_get<wchar_t>;
+- extern template class _GLIBCXX_NAMESPACE_LDBL num_put<wchar_t>;
- extern template class ctype_byname<wchar_t>;
+ extern template class _GLIBCXX_IMPORT numpunct<wchar_t>;
+ extern template class _GLIBCXX_IMPORT numpunct_byname<wchar_t>;
-+ extern template class _GLIBCXX_IMPORT _GLIBCXX_LDBL_NAMESPACE num_get<wchar_t>;
-+ extern template class _GLIBCXX_IMPORT _GLIBCXX_LDBL_NAMESPACE num_put<wchar_t>;
++ extern template class _GLIBCXX_IMPORT _GLIBCXX_NAMESPACE_LDBL num_get<wchar_t>;
++ extern template class _GLIBCXX_IMPORT _GLIBCXX_NAMESPACE_LDBL num_put<wchar_t>;
+ extern template class _GLIBCXX_IMPORT ctype_byname<wchar_t>;
extern template
const ctype<wchar_t>&
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc src/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc 2010-01-07 17:20:45.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc 2010-04-19 05:11:01.781250000 +0100
-@@ -1214,19 +1214,19 @@ _GLIBCXX_END_LDBL_NAMESPACE
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/locale_facets_nonio.tcc 2011-03-04 21:51:56.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/locale_facets_nonio.tcc 2012-10-31 17:00:42.546875000 +0000
+@@ -1216,19 +1216,19 @@ _GLIBCXX_END_NAMESPACE_LDBL
+ // Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
- // NB: This syntax is a GNU extension.
#if _GLIBCXX_EXTERN_TEMPLATE
- extern template class moneypunct<char, false>;
- extern template class moneypunct<char, true>;
- extern template class moneypunct_byname<char, false>;
- extern template class moneypunct_byname<char, true>;
-- extern template class _GLIBCXX_LDBL_NAMESPACE money_get<char>;
-- extern template class _GLIBCXX_LDBL_NAMESPACE money_put<char>;
+- extern template class _GLIBCXX_NAMESPACE_LDBL money_get<char>;
+- extern template class _GLIBCXX_NAMESPACE_LDBL money_put<char>;
- extern template class __timepunct<char>;
- extern template class time_put<char>;
- extern template class time_put_byname<char>;
@@ -388,8 +364,8 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc s
+ extern template class _GLIBCXX_IMPORT moneypunct<char, true>;
+ extern template class _GLIBCXX_IMPORT moneypunct_byname<char, false>;
+ extern template class _GLIBCXX_IMPORT moneypunct_byname<char, true>;
-+ extern template class _GLIBCXX_IMPORT _GLIBCXX_LDBL_NAMESPACE money_get<char>;
-+ extern template class _GLIBCXX_IMPORT _GLIBCXX_LDBL_NAMESPACE money_put<char>;
++ extern template class _GLIBCXX_IMPORT _GLIBCXX_NAMESPACE_LDBL money_get<char>;
++ extern template class _GLIBCXX_IMPORT _GLIBCXX_NAMESPACE_LDBL money_put<char>;
+ extern template class _GLIBCXX_IMPORT __timepunct<char>;
+ extern template class _GLIBCXX_IMPORT time_put<char>;
+ extern template class _GLIBCXX_IMPORT time_put_byname<char>;
@@ -400,7 +376,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc s
extern template
const moneypunct<char, true>&
-@@ -1289,19 +1289,19 @@ _GLIBCXX_END_LDBL_NAMESPACE
+@@ -1291,19 +1291,19 @@ _GLIBCXX_END_NAMESPACE_LDBL
has_facet<messages<char> >(const locale&);
#ifdef _GLIBCXX_USE_WCHAR_T
@@ -408,8 +384,8 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc s
- extern template class moneypunct<wchar_t, true>;
- extern template class moneypunct_byname<wchar_t, false>;
- extern template class moneypunct_byname<wchar_t, true>;
-- extern template class _GLIBCXX_LDBL_NAMESPACE money_get<wchar_t>;
-- extern template class _GLIBCXX_LDBL_NAMESPACE money_put<wchar_t>;
+- extern template class _GLIBCXX_NAMESPACE_LDBL money_get<wchar_t>;
+- extern template class _GLIBCXX_NAMESPACE_LDBL money_put<wchar_t>;
- extern template class __timepunct<wchar_t>;
- extern template class time_put<wchar_t>;
- extern template class time_put_byname<wchar_t>;
@@ -421,8 +397,8 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc s
+ extern template class _GLIBCXX_IMPORT moneypunct<wchar_t, true>;
+ extern template class _GLIBCXX_IMPORT moneypunct_byname<wchar_t, false>;
+ extern template class _GLIBCXX_IMPORT moneypunct_byname<wchar_t, true>;
-+ extern template class _GLIBCXX_IMPORT _GLIBCXX_LDBL_NAMESPACE money_get<wchar_t>;
-+ extern template class _GLIBCXX_IMPORT _GLIBCXX_LDBL_NAMESPACE money_put<wchar_t>;
++ extern template class _GLIBCXX_IMPORT _GLIBCXX_NAMESPACE_LDBL money_get<wchar_t>;
++ extern template class _GLIBCXX_IMPORT _GLIBCXX_NAMESPACE_LDBL money_put<wchar_t>;
+ extern template class _GLIBCXX_IMPORT __timepunct<wchar_t>;
+ extern template class _GLIBCXX_IMPORT time_put<wchar_t>;
+ extern template class _GLIBCXX_IMPORT time_put_byname<wchar_t>;
@@ -433,19 +409,18 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc s
extern template
const moneypunct<wchar_t, true>&
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/ostream.tcc src/gcc-4.5.0/libstdc++-v3/include/bits/ostream.tcc
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/ostream.tcc 2009-09-05 01:18:07.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/ostream.tcc 2010-04-19 05:11:01.781250000 +0100
-@@ -357,7 +357,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/ostream.tcc 2011-03-04 21:51:56.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/ostream.tcc 2012-10-31 16:49:37.515625000 +0000
+@@ -358,7 +358,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
- // NB: This syntax is a GNU extension.
#if _GLIBCXX_EXTERN_TEMPLATE
- extern template class basic_ostream<char>;
+ extern template class _GLIBCXX_IMPORT basic_ostream<char>;
extern template ostream& endl(ostream&);
extern template ostream& ends(ostream&);
extern template ostream& flush(ostream&);
-@@ -380,7 +380,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -381,7 +381,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
extern template ostream& ostream::_M_insert(const void*);
#ifdef _GLIBCXX_USE_WCHAR_T
@@ -454,12 +429,11 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/ostream.tcc src/gcc-4.5.0
extern template wostream& endl(wostream&);
extern template wostream& ends(wostream&);
extern template wostream& flush(wostream&);
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/sstream.tcc src/gcc-4.5.0/libstdc++-v3/include/bits/sstream.tcc
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/sstream.tcc 2009-04-09 16:00:19.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/sstream.tcc 2010-04-19 05:11:01.796875000 +0100
-@@ -255,16 +255,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/sstream.tcc 2011-03-04 21:51:56.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/sstream.tcc 2012-10-31 16:49:37.515625000 +0000
+@@ -271,16 +271,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
- // NB: This syntax is a GNU extension.
#if _GLIBCXX_EXTERN_TEMPLATE
- extern template class basic_stringbuf<char>;
- extern template class basic_istringstream<char>;
@@ -482,19 +456,18 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/sstream.tcc src/gcc-4.5.0
#endif
#endif
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/streambuf.tcc src/gcc-4.5.0/libstdc++-v3/include/bits/streambuf.tcc
---- origsrc/gcc-4.5.0/libstdc++-v3/include/bits/streambuf.tcc 2009-04-09 16:00:19.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/include/bits/streambuf.tcc 2010-04-19 05:11:01.796875000 +0100
-@@ -146,7 +146,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/bits/streambuf.tcc 2011-03-04 21:51:56.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/bits/streambuf.tcc 2012-10-31 16:49:37.515625000 +0000
+@@ -147,7 +147,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
- // NB: This syntax is a GNU extension.
#if _GLIBCXX_EXTERN_TEMPLATE
- extern template class basic_streambuf<char>;
+ extern template class _GLIBCXX_IMPORT basic_streambuf<char>;
extern template
streamsize
__copy_streambufs(basic_streambuf<char>*,
-@@ -157,7 +157,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -158,7 +158,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
basic_streambuf<char>*, bool&);
#ifdef _GLIBCXX_USE_WCHAR_T
@@ -503,10 +476,9 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/bits/streambuf.tcc src/gcc-4.5
extern template
streamsize
__copy_streambufs(basic_streambuf<wchar_t>*,
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/ext/concurrence.h src/gcc-4.5.0/libstdc++-v3/include/ext/concurrence.h
---- origsrc/gcc-4.5.0/libstdc++-v3/include/ext/concurrence.h 2009-04-09 16:00:19.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/include/ext/concurrence.h 2010-04-19 05:11:01.796875000 +0100
-@@ -60,7 +60,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/ext/concurrence.h 2012-07-16 23:34:13.000000000 +0100
++++ src/gcc-4.7.2/libstdc++-v3/include/ext/concurrence.h 2012-10-31 16:49:37.515625000 +0000
+@@ -65,7 +65,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// NB: As this is used in libsupc++, need to only depend on
// exception. No stdexception classes, no use of std::string.
@@ -515,7 +487,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/ext/concurrence.h src/gcc-4.5.
{
public:
virtual char const*
-@@ -68,7 +68,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+@@ -73,7 +73,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ return "__gnu_cxx::__concurrence_lock_error"; }
};
@@ -524,38 +496,36 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/ext/concurrence.h src/gcc-4.5.
{
public:
virtual char const*
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/std/iostream src/gcc-4.5.0/libstdc++-v3/include/std/iostream
---- origsrc/gcc-4.5.0/libstdc++-v3/include/std/iostream 2010-02-04 18:20:34.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/include/std/iostream 2010-04-19 05:11:01.796875000 +0100
-@@ -56,16 +56,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/std/iostream 2011-01-30 22:39:36.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/std/iostream 2012-10-31 16:53:39.078125000 +0000
+@@ -58,16 +58,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* linked to above.
*/
//@{
-- extern istream cin; ///< Linked to standard input
-- extern ostream cout; ///< Linked to standard output
-- extern ostream cerr; ///< Linked to standard error (unbuffered)
-- extern ostream clog; ///< Linked to standard error (buffered)
-+ extern _GLIBCXX_IMPORT istream cin; ///< Linked to standard input
-+ extern _GLIBCXX_IMPORT ostream cout; ///< Linked to standard output
-+ extern _GLIBCXX_IMPORT ostream cerr; ///< Linked to standard error (unbuffered)
-+ extern _GLIBCXX_IMPORT ostream clog; ///< Linked to standard error (buffered)
+- extern istream cin; /// Linked to standard input
+- extern ostream cout; /// Linked to standard output
+- extern ostream cerr; /// Linked to standard error (unbuffered)
+- extern ostream clog; /// Linked to standard error (buffered)
++ extern _GLIBCXX_IMPORT istream cin; /// Linked to standard input
++ extern _GLIBCXX_IMPORT ostream cout; /// Linked to standard output
++ extern _GLIBCXX_IMPORT ostream cerr; /// Linked to standard error (unbuffered)
++ extern _GLIBCXX_IMPORT ostream clog; /// Linked to standard error (buffered)
#ifdef _GLIBCXX_USE_WCHAR_T
-- extern wistream wcin; ///< Linked to standard input
-- extern wostream wcout; ///< Linked to standard output
-- extern wostream wcerr; ///< Linked to standard error (unbuffered)
-- extern wostream wclog; ///< Linked to standard error (buffered)
-+ extern _GLIBCXX_IMPORT wistream wcin; ///< Linked to standard input
-+ extern _GLIBCXX_IMPORT wostream wcout; ///< Linked to standard output
-+ extern _GLIBCXX_IMPORT wostream wcerr; ///< Linked to standard error (unbuffered)
-+ extern _GLIBCXX_IMPORT wostream wclog; ///< Linked to standard error (buffered)
+- extern wistream wcin; /// Linked to standard input
+- extern wostream wcout; /// Linked to standard output
+- extern wostream wcerr; /// Linked to standard error (unbuffered)
+- extern wostream wclog; /// Linked to standard error (buffered)
++ extern _GLIBCXX_IMPORT wistream wcin; /// Linked to standard input
++ extern _GLIBCXX_IMPORT wostream wcout; /// Linked to standard output
++ extern _GLIBCXX_IMPORT wostream wcerr; /// Linked to standard error (unbuffered)
++ extern _GLIBCXX_IMPORT wostream wclog; /// Linked to standard error (buffered)
#endif
//@}
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/std/stdexcept src/gcc-4.5.0/libstdc++-v3/include/std/stdexcept
---- origsrc/gcc-4.5.0/libstdc++-v3/include/std/stdexcept 2009-04-09 16:00:19.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/include/std/stdexcept 2010-04-19 05:11:01.812500000 +0100
-@@ -50,7 +50,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- origsrc/gcc-4.7.2/libstdc++-v3/include/std/stdexcept 2011-12-06 20:03:25.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/include/std/stdexcept 2012-10-31 17:02:54.890625000 +0000
+@@ -53,7 +53,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* program runs (e.g., violations of class invariants).
* @brief One of two subclasses of exception.
*/
@@ -564,24 +534,25 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/std/stdexcept src/gcc-4.5.0/li
{
string _M_msg;
-@@ -70,14 +70,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -72,7 +72,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/** Thrown by the library, or by you, to report domain errors (domain in
* the mathematical sense). */
- class domain_error : public logic_error
-+ class _GLIBCXX_IMPORT domain_error : public logic_error
++ class _GLIBCXX_IMPORT domain_error : public logic_error
{
public:
explicit domain_error(const string& __arg);
+@@ -80,7 +80,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
/** Thrown to report invalid arguments to functions. */
- class invalid_argument : public logic_error
-+ class _GLIBCXX_IMPORT invalid_argument : public logic_error
++ class _GLIBCXX_IMPORT invalid_argument : public logic_error
{
public:
explicit invalid_argument(const string& __arg);
-@@ -85,7 +85,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -89,7 +89,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/** Thrown when an object is constructed that would exceed its maximum
* permitted size (e.g., a basic_string instance). */
@@ -590,7 +561,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/std/stdexcept src/gcc-4.5.0/li
{
public:
explicit length_error(const string& __arg);
-@@ -93,7 +93,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -98,7 +98,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/** This represents an argument whose value is not within the expected
* range (e.g., boundary checks in basic_string). */
@@ -599,7 +570,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/std/stdexcept src/gcc-4.5.0/li
{
public:
explicit out_of_range(const string& __arg);
-@@ -104,7 +104,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -110,7 +110,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* the program executes.
* @brief One of two subclasses of exception.
*/
@@ -608,7 +579,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/std/stdexcept src/gcc-4.5.0/li
{
string _M_msg;
-@@ -123,7 +123,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -128,7 +128,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
/** Thrown to indicate range errors in internal computations. */
@@ -617,7 +588,7 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/std/stdexcept src/gcc-4.5.0/li
{
public:
explicit range_error(const string& __arg);
-@@ -137,7 +137,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -144,7 +144,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
/** Thrown to indicate arithmetic underflow. */
@@ -626,37 +597,9 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/include/std/stdexcept src/gcc-4.5.0/li
{
public:
explicit underflow_error(const string& __arg);
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/Makefile.am src/gcc-4.5.0/libstdc++-v3/libsupc++/Makefile.am
---- origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/Makefile.am 2009-08-23 08:28:35.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/libsupc++/Makefile.am 2010-04-19 05:11:01.812500000 +0100
-@@ -154,7 +154,8 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --ta
- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-
--LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
-+LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) \
-+ -no-undefined -bindir $(bindir)
-
- # 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
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/Makefile.in src/gcc-4.5.0/libstdc++-v3/libsupc++/Makefile.in
---- origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/Makefile.in 2010-04-02 19:18:06.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/libsupc++/Makefile.in 2010-04-19 05:11:01.812500000 +0100
-@@ -466,7 +466,9 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --ta
- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-
--LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
-+LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) \
-+ -no-undefined -bindir $(bindir)
-+
-
- # 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
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/exception src/gcc-4.5.0/libstdc++-v3/libsupc++/exception
---- origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/exception 2010-02-18 17:58:53.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/libsupc++/exception 2010-04-19 05:09:20.750000000 +0100
-@@ -58,7 +58,7 @@ namespace std
+--- origsrc/gcc-4.7.2/libstdc++-v3/libsupc++/exception 2011-12-07 04:03:25.000000000 +0800
++++ src/gcc-4.7.2/libstdc++-v3/libsupc++/exception 2013-02-26 19:27:32.575916600 +0800
+@@ -59,7 +59,7 @@ namespace std
* your own %exception classes, or use a different hierarchy, or to
* throw non-class data (e.g., fundamental types).
*/
@@ -664,8 +607,8 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/exception src/gcc-4.5.0/libs
+ class _GLIBCXX_IMPORT exception
{
public:
- exception() throw() { }
-@@ -71,7 +71,7 @@ namespace std
+ exception() _GLIBCXX_USE_NOEXCEPT { }
+@@ -72,7 +72,7 @@ namespace std
/** If an %exception is thrown which is not listed in a function's
* %exception specification, one of these may be thrown. */
@@ -673,10 +616,9 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/exception src/gcc-4.5.0/libs
+ class _GLIBCXX_IMPORT bad_exception : public exception
{
public:
- bad_exception() throw() { }
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/new src/gcc-4.5.0/libstdc++-v3/libsupc++/new
---- origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/new 2010-02-18 17:58:53.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/libsupc++/new 2010-04-19 05:11:01.828125000 +0100
+ bad_exception() _GLIBCXX_USE_NOEXCEPT { }
+--- origsrc/gcc-4.7.2/libstdc++-v3/libsupc++/new 2011-10-12 19:40:58.000000000 +0100
++++ src/gcc-4.7.2/libstdc++-v3/libsupc++/new 2012-10-31 16:49:37.578125000 +0000
@@ -53,7 +53,7 @@ namespace std
*
* @c bad_alloc (or classes derived from it) is used to report allocation
@@ -686,100 +628,38 @@ diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/new src/gcc-4.5.0/libstdc++-
{
public:
bad_alloc() throw() { }
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/typeinfo src/gcc-4.5.0/libstdc++-v3/libsupc++/typeinfo
---- origsrc/gcc-4.5.0/libstdc++-v3/libsupc++/typeinfo 2010-02-18 17:58:53.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/libsupc++/typeinfo 2010-04-19 05:10:35.125000000 +0100
-@@ -84,7 +84,7 @@ namespace std
+--- origsrc/gcc-4.7.2/libstdc++-v3/libsupc++/typeinfo 2012-01-27 19:38:56.000000000 +0000
++++ src/gcc-4.7.2/libstdc++-v3/libsupc++/typeinfo 2012-10-31 17:07:07.796875000 +0000
+@@ -87,7 +87,7 @@ namespace std
* The @c type_info class describes type information generated by
* an implementation.
*/
-- class type_info
-+ class _GLIBCXX_IMPORT type_info
+- class type_info
++ class _GLIBCXX_IMPORT type_info
{
public:
/** Destructor first. Being the first non-inline virtual function, this
-@@ -171,7 +171,7 @@ namespace std
+@@ -186,7 +186,7 @@ namespace std
*
* If you attempt an invalid @c dynamic_cast expression, an instance of
* this class (or something derived from this class) is thrown. */
-- class bad_cast : public exception
-+ class _GLIBCXX_IMPORT bad_cast : public exception
+- class bad_cast : public exception
++ class _GLIBCXX_IMPORT bad_cast : public exception
{
public:
- bad_cast() throw() { }
-@@ -188,7 +188,7 @@ namespace std
+ bad_cast() _GLIBCXX_USE_NOEXCEPT { }
+@@ -203,7 +203,7 @@ namespace std
* @brief Thrown when a NULL pointer in a @c typeid expression is used.
* @ingroup exceptions
*/
-- class bad_typeid : public exception
-+ class _GLIBCXX_IMPORT bad_typeid : public exception
+- class bad_typeid : public exception
++ class _GLIBCXX_IMPORT bad_typeid : public exception
{
public:
- bad_typeid () throw() { }
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/scripts/testsuite_flags.in src/gcc-4.5.0/libstdc++-v3/scripts/testsuite_flags.in
---- origsrc/gcc-4.5.0/libstdc++-v3/scripts/testsuite_flags.in 2007-09-11 23:32:51.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/scripts/testsuite_flags.in 2010-04-19 05:11:01.828125000 +0100
-@@ -27,6 +27,7 @@ EOF
- BUILD_DIR=@glibcxx_builddir@
- SRC_DIR=@glibcxx_srcdir@
- PREFIX_DIR=@glibcxx_prefixdir@
-+target=@target@
- query=$1
-
- case ${query} in
-@@ -71,6 +72,12 @@ case ${query} in
- ;;
- --cxxldflags)
- SECTIONLDFLAGS="@SECTION_LDFLAGS@ @LIBICONV@"
-+ case ${target} in
-+ *cygwin*)
-+ SECTIONLDFLAGS="${SECTIONLDFLAGS} -Wl,--enable-auto-import"
-+ ;;
-+ esac
-+
- echo ${SECTIONLDFLAGS}
- ;;
- *)
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/src/Makefile.am src/gcc-4.5.0/libstdc++-v3/src/Makefile.am
---- origsrc/gcc-4.5.0/libstdc++-v3/src/Makefile.am 2010-02-22 18:07:07.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/src/Makefile.am 2010-04-19 05:11:01.828125000 +0100
-@@ -210,7 +210,8 @@ libstdc___la_DEPENDENCIES = \
- $(top_builddir)/libsupc++/libsupc++convenience.la
-
- libstdc___la_LDFLAGS = \
-- -version-info $(libtool_VERSION) ${version_arg} -lm
-+ -version-info $(libtool_VERSION) ${version_arg} -lm \
-+ -no-undefined -bindir $(bindir)
-
- libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
-
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/src/Makefile.in src/gcc-4.5.0/libstdc++-v3/src/Makefile.in
---- origsrc/gcc-4.5.0/libstdc++-v3/src/Makefile.in 2010-04-02 19:18:06.000000000 +0100
-+++ src/gcc-4.5.0/libstdc++-v3/src/Makefile.in 2010-04-19 05:11:01.828125000 +0100
-@@ -452,7 +452,8 @@ libstdc___la_DEPENDENCIES = \
- $(top_builddir)/libsupc++/libsupc++convenience.la
-
- libstdc___la_LDFLAGS = \
-- -version-info $(libtool_VERSION) ${version_arg} -lm
-+ -version-info $(libtool_VERSION) ${version_arg} -lm \
-+ -no-undefined -bindir $(bindir)
-
- libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
-
-diff -pruN origsrc/gcc-4.5.0/libstdc++-v3/testsuite/lib/libstdc++.exp src/gcc-4.5.0/libstdc++-v3/testsuite/lib/libstdc++.exp
---- origsrc/gcc-4.5.0/libstdc++-v3/testsuite/lib/libstdc++.exp 2010-01-07 00:22:51.000000000 +0000
-+++ src/gcc-4.5.0/libstdc++-v3/testsuite/lib/libstdc++.exp 2010-04-19 05:11:01.843750000 +0100
-@@ -124,6 +124,9 @@ proc libstdc++_init { testfile } {
- if { [string match "powerpc-*-darwin*" $target_triplet] } {
- append DEFAULT_CXXFLAGS " -multiply_defined suppress"
- }
-+ if { [string match "*-*-cygwin*" $target_triplet] } {
-+ append DEFAULT_CXXFLAGS " -Wl,--enable-auto-import"
-+ }
- }
- v3track DEFAULT_CXXFLAGS 2
-
-@@ -144,6 +147,9 @@ proc libstdc++_init { testfile } {
+ bad_typeid () _GLIBCXX_USE_NOEXCEPT { }
+--- origsrc/gcc-4.7.2/libstdc++-v3/testsuite/lib/libstdc++.exp 2012-08-06 22:34:27.000000000 +0800
++++ src/gcc-4.7.2/libstdc++-v3/testsuite/lib/libstdc++.exp 2013-02-26 19:31:07.934763700 +0800
+@@ -146,6 +146,9 @@ proc libstdc++_init { testfile } {
set gccdir [file dirname $gccdir]
append ld_library_path_tmp ":${gccdir}"
}
diff --git a/gcc47-misc-core.patch b/gcc47-misc-core.patch
new file mode 100644
index 0000000..0c66eb0
--- /dev/null
+++ b/gcc47-misc-core.patch
@@ -0,0 +1,27 @@
+--- origsrc/gcc-4.7.2/gcc/cppdefault.c 2012-01-06 08:14:32.000000000 +0800
++++ src/gcc-4.7.2/gcc/cppdefault.c 2013-02-26 19:32:22.836275000 +0800
+@@ -35,6 +35,8 @@
+ # undef NATIVE_SYSTEM_HEADER_DIR
+ #else
+ # undef CROSS_INCLUDE_DIR
++# undef CROSS_INCLUDE_DIR_1
++# undef CROSS_INCLUDE_DIR_2
+ #endif
+
+ const struct default_include cpp_include_defaults[]
+@@ -84,6 +86,14 @@ const struct default_include cpp_include
+ /* One place the target system's headers might be. */
+ { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
+ #endif
++#ifdef CROSS_INCLUDE_DIR_1
++ /* One more place the target system's headers might be. */
++ { CROSS_INCLUDE_DIR_1, "GCC", 0, 0, 0, 0 },
++#endif
++#ifdef CROSS_INCLUDE_DIR_2
++ /* One more place the target system's headers might be. */
++ { CROSS_INCLUDE_DIR_2, "GCC", 0, 0, 0, 0 },
++#endif
+ #ifdef TOOL_INCLUDE_DIR
+ /* Another place the target system's headers might be. */
+ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
+
diff --git a/gcc47-specs.patch b/gcc47-specs.patch
new file mode 100644
index 0000000..8b82f3d
--- /dev/null
+++ b/gcc47-specs.patch
@@ -0,0 +1,87 @@
+Accept -pthread and -rdynamic for compatibility with Linux.
+Add --large-address-aware, and use --tsaware, only with EXEs.
+
+--- origsrc/gcc-4.7.2/gcc/config.gcc 2012-09-12 04:03:54.000000000 -0500
++++ src/gcc-4.7.2/gcc/config.gcc 2013-03-11 03:41:03.674656700 -0500
+@@ -1417,7 +1417,7 @@ i[34567]86-*-cygwin*)
+ xm_file=i386/xm-cygwin.h
+ tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
+ target_gtfiles="\$(srcdir)/config/i386/winnt.c"
+- extra_options="${extra_options} i386/cygming.opt"
++ extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
+ extra_objs="winnt.o winnt-stubs.o"
+ c_target_objs="${c_target_objs} msformat-c.o"
+ cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
+--- origsrc/gcc-4.7.2/gcc/config/i386/cygwin.h 2012-02-13 15:46:38.000000000 -0600
++++ src/gcc-4.7.2/gcc/config/i386/cygwin.h 2013-03-06 00:13:25.986558800 -0600
+@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.
+ #define EXTRA_OS_CPP_BUILTINS() /* Nothing. */
+
+ #undef CPP_SPEC
+-#define CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE} \
++#define CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE} %{pthread: } \
+ -D__CYGWIN32__ -D__CYGWIN__ %{!ansi:-Dunix} -D__unix__ -D__unix \
+ %{mwin32:-DWIN32 -D_WIN32 -D__WIN32 -D__WIN32__ %{!ansi:-DWINNT}} \
+ %{!nostdinc:%{!mno-win32:-idirafter ../include/w32api%s -idirafter ../../include/w32api%s}}\
+@@ -49,11 +49,7 @@ along with GCC; see the file COPYING3.
+ %{static|static-libgcc:-lgcc -lgcc_eh} \
+ %{!static: \
+ %{!static-libgcc: \
+- %{!shared: \
+- %{!shared-libgcc:-lgcc -lgcc_eh} \
+- %{shared-libgcc:-lgcc_s -lgcc} \
+- } \
+- %{shared:-lgcc_s -lgcc} \
++ -lgcc_s -lgcc \
+ } \
+ } "
+ #else
+@@ -72,6 +72,7 @@ along with GCC; see the file COPYING3.
+ #undef LIB_SPEC
+ #define LIB_SPEC "\
+ %{pg:-lgmon} \
++ %{pthread: } \
+ -lcygwin \
+ %{mwindows:-lgdi32 -lcomdlg32} \
+ -ladvapi32 -lshell32 -luser32 -lkernel32"
+@@ -115,7 +116,9 @@ along with GCC; see the file COPYING3.
+ %{shared: --shared} %{mdll:--dll} \
+ %{static:-Bstatic} %{!static:-Bdynamic} \
+ %{shared|mdll: --enable-auto-image-base -e __cygwin_dll_entry@12} \
+- --dll-search-prefix=cyg -tsaware"
++ --dll-search-prefix=cyg \
++ %{rdynamic: --export-all-symbols} \
++ %{!shared: %{!mdll: --large-address-aware --tsaware}}"
+
+ /* Binutils does not handle weak symbols from dlls correctly. For now,
+ do not use them unnecessarily in gthr-posix.h. */
+--- origsrc/gcc-4.7.2/gcc/config/i386/cygwin.opt 1969-12-31 18:00:00.000000000 -0600
++++ src/gcc-4.7.2/gcc/config/i386/cygwin.opt 2013-03-11 03:36:36.556378400 -0500
+@@ -0,0 +1,27 @@
++; Cygwin-specific options.
++
++; Copyright (C) 2005, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++;
++; This file is part of GCC.
++;
++; GCC is free software; you can redistribute it and/or modify it under
++; the terms of the GNU General Public License as published by the Free
++; Software Foundation; either version 3, or (at your option) any later
++; version.
++;
++; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
++; WARRANTY; without even the implied warranty of MERCHANTABILITY or
++; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++; for more details.
++;
++; You should have received a copy of the GNU General Public License
++; along with GCC; see the file COPYING3. If not see
++; <http://www.gnu.org/licenses/>.
++
++pthread
++Driver
++
++rdynamic
++Driver
++
++; Retain blank line above
diff --git a/gcc48-lto-plugin-soname.patch b/gcc48-lto-plugin-soname.patch
new file mode 100644
index 0000000..2ca18db
--- /dev/null
+++ b/gcc48-lto-plugin-soname.patch
@@ -0,0 +1,50 @@
+--- origsrc/gcc-4.8-20130310/gcc/config.host 2013-03-17 02:15:46.575313400 -0500
++++ src/gcc-4.8-20130310/gcc/config.host 2013-03-17 03:10:31.035640300 -0500
+@@ -219,14 +219,14 @@ case ${host} in
+ out_host_hook_obj=host-cygwin.o
+ host_xmake_file="${host_xmake_file} i386/x-cygwin"
+ host_exeext=.exe
+- host_lto_plugin_soname=cyglto_plugin-0.dll
++ host_lto_plugin_soname=cyglto_plugin.dll
+ ;;
+ i[34567]86-*-mingw32*)
+ host_xm_file=i386/xm-mingw32.h
+ host_xmake_file="${host_xmake_file} i386/x-mingw32"
+ host_exeext=.exe
+ out_host_hook_obj=host-mingw32.o
+- host_lto_plugin_soname=liblto_plugin-0.dll
++ host_lto_plugin_soname=liblto_plugin.dll
+ ;;
+ x86_64-*-mingw*)
+ use_long_long_for_widest_fast_int=yes
+@@ -234,7 +234,7 @@ case ${host} in
+ host_xmake_file="${host_xmake_file} i386/x-mingw32"
+ host_exeext=.exe
+ out_host_hook_obj=host-mingw32.o
+- host_lto_plugin_soname=liblto_plugin-0.dll
++ host_lto_plugin_soname=liblto_plugin.dll
+ ;;
+ i[34567]86-*-uwin*)
+ echo "*** UWIN may not be used as a host platform because"
+--- origsrc/gcc-4.8-20130310/lto-plugin/Makefile.am 2011-08-10 03:48:37.000000000 -0500
++++ src/gcc-4.8-20130310/lto-plugin/Makefile.am 2013-03-17 03:11:08.995692600 -0500
+@@ -22,7 +22,7 @@ liblto_plugin_la_SOURCES = lto-plugin.c
+ liblto_plugin_la_LIBADD = \
+ $(if $(wildcard ../libiberty/pic/libiberty.a),$(Wc)../libiberty/pic/libiberty.a,)
+ # Note that we intentionally override the bindir supplied by ACX_LT_HOST_FLAGS
+-liblto_plugin_la_LDFLAGS = $(lt_host_flags) -module -bindir $(libexecsubdir) \
++liblto_plugin_la_LDFLAGS = $(lt_host_flags) -module -avoid-version -bindir $(libexecsubdir) \
+ $(if $(wildcard ../libiberty/pic/libiberty.a),,-Wc,../libiberty/libiberty.a)
+ liblto_plugin_la_DEPENDENCIES = $(if $(wildcard \
+ ../libiberty/pic/libiberty.a),../libiberty/pic/libiberty.a,)
+--- origsrc/gcc-4.8-20130310/lto-plugin/Makefile.in 2011-08-10 03:48:37.000000000 -0500
++++ src/gcc-4.8-20130310/lto-plugin/Makefile.in 2013-03-17 03:12:11.625779100 -0500
+@@ -242,7 +242,7 @@ liblto_plugin_la_LIBADD = \
+ $(if $(wildcard ../libiberty/pic/libiberty.a),$(Wc)../libiberty/pic/libiberty.a,)
+
+ # Note that we intentionally override the bindir supplied by ACX_LT_HOST_FLAGS
+-liblto_plugin_la_LDFLAGS = $(lt_host_flags) -module -bindir $(libexecsubdir) \
++liblto_plugin_la_LDFLAGS = $(lt_host_flags) -module -avoid-version -bindir $(libexecsubdir) \
+ $(if $(wildcard ../libiberty/pic/libiberty.a),,-Wc,../libiberty/libiberty.a)
+
+ liblto_plugin_la_DEPENDENCIES = $(if $(wildcard \
diff --git a/sources b/sources
index 1e11f67..26ae819 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-8e0b5c12212e185f3e4383106bfa9cc6 gcc-4.5.3.tar.bz2
+86f428a30379bdee0224e353ee2f999e gcc-4.7.3.tar.bz2