public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* [ITP] gcc-tools-autoconf, gcc-tools-automake
@ 2009-01-03 19:39 Charles Wilson
  2009-01-03 22:14 ` Dave Korn
                   ` (2 more replies)
  0 siblings, 3 replies; 21+ messages in thread
From: Charles Wilson @ 2009-01-03 19:39 UTC (permalink / raw)
  To: cygwin-apps

Special versions of "pristine" (that is, no cygwin-special patches) of
autoconf-2.59 and automake-1.9.6 as required by gcc, installed into
/opt/gcc-tools/{bin|lib|share}.

This should make it easier for Dave, and those who want to help him, to
develop gcc and binutils -- avoiding things like this:
http://www.cygwin.com/ml/cygwin/2008-12/msg00201.html

I already maintain "normal" autoconf and automake packages, but I'm
soliciting comments on these new packages because they are a little odd.
And no official packages yet uses the /opt tree, so...
http://www.pathname.com/fhs/2.2/fhs-3.12.html

--
Chuck


http://cygwin.cwilson.fastmail.fm/ITP/gcc-tools-autoconf-2.59-2-src.tar.bz2
http://cygwin.cwilson.fastmail.fm/ITP/gcc-tools-autoconf-2.59-2.tar.bz2
http://cygwin.cwilson.fastmail.fm/ITP/gcc-tools-autoconf.hint

sdesc: "(gcc-special) automatic configure script builder"
ldesc: "This is a custom version of autoconf, installed into
/opt/gcc-tools/ for the use of gcc developers. Gcc requires
an unpatched, pristine version of autoconf when preparing patches
for official submission."
category: Devel
requires: m4 perl coreutils texinfo


http://cygwin.cwilson.fastmail.fm/ITP/gcc-tools-automake-1.9.6-2-src.tar.bz2
http://cygwin.cwilson.fastmail.fm/ITP/gcc-tools-automake-1.9.6-2.tar.bz2
http://cygwin.cwilson.fastmail.fm/ITP/gcc-tools-automake.hint

sdesc: "(gcc-special) a tool for generating GNU-compliant Makefiles"
ldesc: "This is a custom version of automake, installed into
/opt/gcc-tools/ for the use of gcc developers. Gcc requires
an unpatched, pristine version of automake when preparing patches
for official submission."
category: Devel
requires: gcc-tools-autoconf perl coreutils m4 texinfo

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-03 19:39 [ITP] gcc-tools-autoconf, gcc-tools-automake Charles Wilson
@ 2009-01-03 22:14 ` Dave Korn
  2009-01-05  6:20 ` Yaakov (Cygwin/X)
  2009-01-07  5:37 ` Charles Wilson
  2 siblings, 0 replies; 21+ messages in thread
From: Dave Korn @ 2009-01-03 22:14 UTC (permalink / raw)
  To: cygwin-apps

Charles Wilson wrote:
> Special versions of "pristine" (that is, no cygwin-special patches) of
> autoconf-2.59 and automake-1.9.6 as required by gcc, installed into
> /opt/gcc-tools/{bin|lib|share}.
>
> This should make it easier for Dave, and those who want to help him, to
> develop gcc and binutils -- avoiding things like this:
> http://www.cygwin.com/ml/cygwin/2008-12/msg00201.html

  This would be very helpful and get a +1 from me; I was already
uncomfortable with shipping a package that had a build dependency not (any
longer) available in the distro, and was wondering whether I was going to have
to patch cygport to let me ship with patched versions of the generated files.
 Thanks you very much!

    cheers,
      DaveK

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-03 19:39 [ITP] gcc-tools-autoconf, gcc-tools-automake Charles Wilson
  2009-01-03 22:14 ` Dave Korn
@ 2009-01-05  6:20 ` Yaakov (Cygwin/X)
  2009-01-05  7:05   ` Charles Wilson
  2009-01-05 13:35   ` Charles Wilson
  2009-01-07  5:37 ` Charles Wilson
  2 siblings, 2 replies; 21+ messages in thread
From: Yaakov (Cygwin/X) @ 2009-01-05  6:20 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 1121 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Charles Wilson wrote:
> Special versions of "pristine" (that is, no cygwin-special patches) of
> autoconf-2.59 and automake-1.9.6 as required by gcc, installed into
> /opt/gcc-tools/{bin|lib|share}.

There's another, *much* simpler way to do this; .cygport attached.  And
yes, I would call it autoconf2.59.

> This should make it easier for Dave, and those who want to help him, to
> develop gcc and binutils -- avoiding things like this:
> http://www.cygwin.com/ml/cygwin/2008-12/msg00201.html

+1

> I already maintain "normal" autoconf and automake packages, but I'm
> soliciting comments on these new packages because they are a little odd.
> And no official packages yet uses the /opt tree, so...
> http://www.pathname.com/fhs/2.2/fhs-3.12.html

A special automake package is reqlly required as well?


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAklhppgACgkQpiWmPGlmQSM/PgCdEbOxwPpnztxP8D8CpyBMbf5Q
XZgAni4dGWKqMD2CZQyPef6JRoDPWwIb
=4cA6
-----END PGP SIGNATURE-----

[-- Attachment #2: autoconf2.59-2.59-2.cygport --]
[-- Type: text/plain, Size: 648 bytes --]

ORIG_PN="autoconf"

DESCRIPTION="An extensible package of m4 macros that produce shell scripts to automatically configure software source code packages."
HOMEPAGE="http://www.gnu.org/software/autoconf/"
SRC_URI="http://ftp.gnu.org/gnu/autoconf/${ORIG_PN}-${PV}.tar.bz2"
SRC_DIR=${ORIG_PN}-${PV}

DIFF_EXCLUDES="autoconf.info standards.info stamp-vti version.texi"

src_compile() {
	# This package is not autotoolized, so skip cygautoreconf
	cd ${B}
	cygconf --program-suffix=-2.59 EMACS=no
	cygmake -j1 pkgdatadir=/usr/share/autoconf-${PV}
}

src_install() {
	cd ${B}
	cyginstall pkgdatadir=/usr/share/autoconf-${PV}
	rm -fr ${D}/usr/share/info/
}

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-05  6:20 ` Yaakov (Cygwin/X)
@ 2009-01-05  7:05   ` Charles Wilson
  2009-01-05  7:27     ` Yaakov (Cygwin/X)
  2009-01-05 13:35   ` Charles Wilson
  1 sibling, 1 reply; 21+ messages in thread
From: Charles Wilson @ 2009-01-05  7:05 UTC (permalink / raw)
  To: CygWin-Apps

Yaakov (Cygwin/X) wrote:
> Charles Wilson wrote:
>> Special versions of "pristine" (that is, no cygwin-special patches) of
>> autoconf-2.59 and automake-1.9.6 as required by gcc, installed into
>> /opt/gcc-tools/{bin|lib|share}.
> 
> There's another, *much* simpler way to do this; .cygport attached.  And
> yes, I would call it autoconf2.59.
> 
> A special automake package is reqlly required as well?

Yes, because gcc requires the use of an unmodified automake. Our
existing 1.9.6 package is modified [*] -- and you can't have two
versions of the same minor automake release installed at the same time
in the same prefix.

Therefore, automake-1.9.6-pristine has to be installed "somewhere else"
-- e.g. not /usr. I take it as given that interoperable autotools must
all be installed in the same prefix [**] (can't remember the reasons
now, but I learned this the hard way many years ago). So,
autoconf-2.59-pristine has to be installed in that same "somewhere
else".  E.g. not /usr.

So, it's not good enough to have /usr/bin/autoconf-2.59 and use the
existing /usr/bin/automake-1.9.  We have to have new autoconf and
automake packages distinct from our existing ones, and they have to be
installed "somewhere else". /opt/gcc-tools/ seems reasonable.  The
"difficulty" you observe is that cygport makes it hard -- and it SHOULD
be hard, I'm not pushing for a change -- to set the installation
directories to a custom prefix.  (Yes, Mr. Boat-on-Water saying
sometimes you really need a road, with curbs, streetsigns, and traffic
lights),

This is just one of those cases where sometimes the easy was isn't the
right way.

[*] Inspection of the automake-1.9 cygport shows that the only code
changes in our automake are the libobj fixes (ignoring testsuite changes
and documentation). But, that means the generated Makefile.in's will be
different than ones created by pristine automake. Leading to
un-necessary (and thus, rejected) changes to those Makefile.in's when
submitting patches.

Perhaps we could drop the libobj support from our am-1.9 packages? Sure,
but then IIRC cygwin libtool (1.5 only? also 2.2? Can't recall.) will
fail some of its regression tests -- with possible real-world
consequences for packages other than gcc/binutils.

Another idea: because our /usr/bin/automake-1.9 modifications directly
affect only the actual /usr/bin/automake-1.9 file itself (and not any of
the .m4 files and stuff in /usr/share/automake-1.9/), I *could* just
make a very small package that includes only a /usr/bin/automake-1.9bis
file, with a different alternatives priority.  But the automake rules
don't know about AM_VERSION=1.9bis, only =1.9. So that won't work.

Third idea: A "sub-alternatives" arrangement for "ok, automake ->
automake-1.9, but automake-1.9 -> either "regular" or "gcc" am19". good
golly, no. That's just...ick. It would work, but...

So, IMO the least bad solution is a completely separate am-1.9-pristine
installed outside of /usr. And thus, ac-2.59 also installed outside of
/usr. It does mean that Dave has to remember to set his PATH properly --
but he can do that inside the gcc4.cygport once and for all.

[**] I'm cheating a bit with regards to libtool, as I haven't made a
gcc-tools-libtool package. But that's because I think it is probably not
necessary for Dave et. al. to try to update the libtool stuff in the gcc
tree; it's already at git-master post-2.2.6-release; Ralf W. has been
keeping it reasonably up to date; and you don't use libtoolize to do it,
anyway. You manually copy the relevant m4 files -- sadly, libtoolize
makes a hash of the src/ tree. At least it did the last time I tried to
do it that way.

--
Chuck

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-05  7:05   ` Charles Wilson
@ 2009-01-05  7:27     ` Yaakov (Cygwin/X)
  2009-01-05  7:44       ` Charles Wilson
  2009-01-06 17:54       ` Dave Korn
  0 siblings, 2 replies; 21+ messages in thread
From: Yaakov (Cygwin/X) @ 2009-01-05  7:27 UTC (permalink / raw)
  To: cygwin-apps

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Charles Wilson wrote:
> Yes, because gcc requires the use of an unmodified automake. Our
> existing 1.9.6 package is modified [*] -- and you can't have two
> versions of the same minor automake release installed at the same time
> in the same prefix.

In what way does gcc "require" a vanilla automake?  Below you say that
the only difference is some libobj fixes.  To me that means that gcc
will build, but the patches won't be quite right (meaning that gcc keeps
Makefile.in in CVS?).  That's not exactly what I call "requiring".

> Perhaps we could drop the libobj support from our am-1.9 packages? Sure,
> but then IIRC cygwin libtool (1.5 only? also 2.2? Can't recall.) will
> fail some of its regression tests -- with possible real-world
> consequences for packages other than gcc/binutils.

It would be good to know if the automake patches are no longer needed
with libtool-2.2, but for now let's assume the worst.

> [**] I'm cheating a bit with regards to libtool, as I haven't made a
> gcc-tools-libtool package. But that's because I think it is probably not
> necessary for Dave et. al. to try to update the libtool stuff in the gcc
> tree; it's already at git-master post-2.2.6-release; Ralf W. has been
> keeping it reasonably up to date; and you don't use libtoolize to do it,
> anyway. You manually copy the relevant m4 files -- sadly, libtoolize
> makes a hash of the src/ tree. At least it did the last time I tried to
> do it that way.

Our libtool is basicall vanilla anyway; the LT_OUTPUT patch (which
anyways I'm not sure that we need anymore) wouldn't be relevant here.

Dave, if you could please send me your .src.patch(es), then I'll be
happy to take a look at this.


Yaakov



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAklhtm0ACgkQpiWmPGlmQSOKzwCeMt9tQxwzcA63RJrueL7+P2Fg
g4MAn3/C7beibkD5VPw17GYc6ixjRcXx
=tkn+
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-05  7:27     ` Yaakov (Cygwin/X)
@ 2009-01-05  7:44       ` Charles Wilson
  2009-01-06 17:49         ` Dave Korn
  2009-01-06 17:54       ` Dave Korn
  1 sibling, 1 reply; 21+ messages in thread
From: Charles Wilson @ 2009-01-05  7:44 UTC (permalink / raw)
  To: CygWin-Apps

Yaakov (Cygwin/X) wrote:
> Charles Wilson wrote:
> In what way does gcc "require" a vanilla automake?  Below you say that
> the only difference is some libobj fixes.  To me that means that gcc
> will build, but the patches won't be quite right (meaning that gcc keeps
> Makefile.in in CVS?).  That's not exactly what I call "requiring".

Many -- if not most -- of Dave's changes are *build system* fixes.
Modifying Makefile.am's and such. And yes, gcc keeps Makefile.in's under
source control. So, many of Dave's patches to send upstream will contain
changes to Makefile.in's as generated by automake.

If he's using the wrong automake -- or a patched version of the right
automake -- that just makes his life harder. The point of these packages
is to make life easier.

I'm not providing these packages so that gcc will build on cygwin. I'm
(attempting to) provide them to ease the development of gcc on cygwin --
a subtle difference, and one that includes considerations such as "make
it easy(ier) to send patches upstream with a reasonable likelihood of
acceptance".

The gcc website explicitly states "automake 1.9.6" -- not debian's
patched version, or cygwin's patched version, or something that claims
to be 1.9.6 but includes all substantive changes from 1.10.1. "For
directories that use automake, GCC requires the latest release in the
1.9.x series, which is currently 1.9.6. When regenerating a directory to
a newer version, please update all the directories using an older 1.9.x
to the latest released version."

>> ...libobj...
> 
> It would be good to know if the automake patches are no longer needed
> with libtool-2.2, but for now let's assume the worst.
> 
>> [**] ...libtool...
> 
> Our libtool is basicall vanilla anyway; the LT_OUTPUT patch (which
> anyways I'm not sure that we need anymore) wouldn't be relevant here.

True, but in this case I was referring more to the fact that
/opt/gcc-tools/ doesn't contain libtool at all, which means "all
autotools in the same prefix" is being violated. My argument was "all
autotools /that we intend to use/" are still in the same prefix --
because (I hope) Dave doesn't intend to re-libtoolize.

--
Chuck

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-05  6:20 ` Yaakov (Cygwin/X)
  2009-01-05  7:05   ` Charles Wilson
@ 2009-01-05 13:35   ` Charles Wilson
  2009-01-05 15:30     ` Yaakov (Cygwin/X)
  1 sibling, 1 reply; 21+ messages in thread
From: Charles Wilson @ 2009-01-05 13:35 UTC (permalink / raw)
  To: CygWin-Apps

Yaakov (Cygwin/X) wrote:
> Charles Wilson wrote:
>> Special versions of "pristine" (that is, no cygwin-special patches) of
>> autoconf-2.59 and automake-1.9.6 as required by gcc, installed into
>> /opt/gcc-tools/{bin|lib|share}.
> 
> There's another, *much* simpler way to do this; .cygport attached.  And
> yes, I would call it autoconf2.59.

D'oh. Here's a bigger reason why this won't work:
    /usr/share/autoconf/autoconf/*
will clash between the cygwin pacakge autoconf2.5-2.63-* and
autoconf2.59-2.59-*. So you could only have one or the other installed
at a time, but setup.exe doesn't support the conflicts: keyword.

I could also resurrect autoconf2.5-2.59 as the "permanent" prev: for the
autoconf2.5 series, but (a) you still could only have one or the other,
2.59 or 2.63, installed at a time, and (b) that still doesn't solve the
automake-1.9-pristine problem detailed earlier.

--
Chuck

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-05 13:35   ` Charles Wilson
@ 2009-01-05 15:30     ` Yaakov (Cygwin/X)
  2009-01-06  4:46       ` Charles Wilson
  0 siblings, 1 reply; 21+ messages in thread
From: Yaakov (Cygwin/X) @ 2009-01-05 15:30 UTC (permalink / raw)
  To: cygwin-apps

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Charles Wilson wrote:
> D'oh. Here's a bigger reason why this won't work:
>     /usr/share/autoconf/autoconf/*
> will clash between the cygwin pacakge autoconf2.5-2.63-* and
> autoconf2.59-2.59-*. So you could only have one or the other installed
> at a time, but setup.exe doesn't support the conflicts: keyword.

If you look closer at my package you'll see I took care of this.


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkliJ4EACgkQpiWmPGlmQSPI1QCeNhT+RXYwuUmmhy23Oxf12RLs
fVEAn0Wv8NDSUJ2IMwFwUpxmUcIrToFF
=DJvn
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-05 15:30     ` Yaakov (Cygwin/X)
@ 2009-01-06  4:46       ` Charles Wilson
  0 siblings, 0 replies; 21+ messages in thread
From: Charles Wilson @ 2009-01-06  4:46 UTC (permalink / raw)
  To: CygWin-Apps

Yaakov (Cygwin/X) wrote:
> Charles Wilson wrote:
>> D'oh. Here's a bigger reason why this won't work:
>>     /usr/share/autoconf/autoconf/*
>> will clash between the cygwin pacakge autoconf2.5-2.63-* and
>> autoconf2.59-2.59-*. So you could only have one or the other installed
>> at a time, but setup.exe doesn't support the conflicts: keyword.
> 
> If you look closer at my package you'll see I took care of this.

Right. I guess I was smarter last night -- in NOT talking about
/usr/share/autoconf/* -- than I was this morning, when I /did/.

But that still leaves the original issues in my other posts.

--
Chuck

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-05  7:44       ` Charles Wilson
@ 2009-01-06 17:49         ` Dave Korn
  0 siblings, 0 replies; 21+ messages in thread
From: Dave Korn @ 2009-01-06 17:49 UTC (permalink / raw)
  To: cygwin-apps

Charles Wilson wrote:
> True, but in this case I was referring more to the fact that
> /opt/gcc-tools/ doesn't contain libtool at all, which means "all
> autotools in the same prefix" is being violated. My argument was "all
> autotools /that we intend to use/" are still in the same prefix --
> because (I hope) Dave doesn't intend to re-libtoolize.

  I certainly don't, as GCC isn't libtoolized!  It uses a static and forked
copy of ltmain.sh to generate its libtool scripts.  So that should be no
problem.

    cheers,
      DaveK

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-05  7:27     ` Yaakov (Cygwin/X)
  2009-01-05  7:44       ` Charles Wilson
@ 2009-01-06 17:54       ` Dave Korn
  1 sibling, 0 replies; 21+ messages in thread
From: Dave Korn @ 2009-01-06 17:54 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 619 bytes --]

Yaakov (Cygwin/X) wrote:

> Dave, if you could please send me your .src.patch(es), then I'll be
> happy to take a look at this.

  Pardon me Yaakov, I got caught up in ld issues for a couple of days.
Attached is a copy of my current .src. patch.

  As I'm sure you realise, if Chuck releases this package in the
distro, it solves all my problem with the excluded diff files in
cygport and obviates the need for any ugly patch to control the list
of files.  (I'd still need the patch to move gcc into the case
statement alongside libtool/automake so that my ltmain.sh gets diffed
for shipping).

    cheers,
      DaveK

[-- Attachment #2: gcc4-4.3.2-2.src.patch --]
[-- Type: application/octet-stream, Size: 184877 bytes --]

diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/boehm-gc/Makefile.am src/gcc-4.3.2/boehm-gc/Makefile.am
--- origsrc/gcc-4.3.2/boehm-gc/Makefile.am	2007-07-02 15:56:58.000000000 +0100
+++ src/gcc-4.3.2/boehm-gc/Makefile.am	2008-12-29 21:20:05.609375000 +0000
@@ -105,6 +105,8 @@ AM_MAKEFLAGS = \
 	"LD=$(LD)" \
 	"LIBCFLAGS=$(LIBCFLAGS)" \
 	"NM=$(NM)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"PICFLAG=$(PICFLAG)" \
 	"RANLIB=$(RANLIB)" \
 	"DESTDIR=$(DESTDIR)"
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/boehm-gc/Makefile.in src/gcc-4.3.2/boehm-gc/Makefile.in
--- origsrc/gcc-4.3.2/boehm-gc/Makefile.in	2008-08-27 19:09:37.000000000 +0100
+++ src/gcc-4.3.2/boehm-gc/Makefile.in	2008-12-29 21:22:34.468750000 +0000
@@ -37,6 +37,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 check_PROGRAMS = gctest$(EXEEXT)
 DIST_COMMON = $(srcdir)/../config.guess $(srcdir)/../config.sub \
 	ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
@@ -342,6 +343,8 @@ AM_MAKEFLAGS = \
 	"LD=$(LD)" \
 	"LIBCFLAGS=$(LIBCFLAGS)" \
 	"NM=$(NM)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"PICFLAG=$(PICFLAG)" \
 	"RANLIB=$(RANLIB)" \
 	"DESTDIR=$(DESTDIR)"
@@ -442,7 +445,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 
 # GNU Make needs to see an explicit $(MAKE) variable in the command it
 # runs to enable its job server during parallel builds.  Hence the
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/boehm-gc/include/Makefile.in src/gcc-4.3.2/boehm-gc/include/Makefile.in
--- origsrc/gcc-4.3.2/boehm-gc/include/Makefile.in	2007-05-24 17:37:27.000000000 +0100
+++ src/gcc-4.3.2/boehm-gc/include/Makefile.in	2008-12-29 21:22:34.140625000 +0000
@@ -37,6 +37,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 subdir = include
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(srcdir)/gc_config.h.in \
@@ -263,7 +264,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/boehm-gc/win32_threads.c src/gcc-4.3.2/boehm-gc/win32_threads.c
--- origsrc/gcc-4.3.2/boehm-gc/win32_threads.c	2006-01-25 03:13:18.000000000 +0000
+++ src/gcc-4.3.2/boehm-gc/win32_threads.c	2008-12-29 21:20:05.625000000 +0000
@@ -753,6 +753,12 @@ int GC_pthread_detach(pthread_t thread)
     return result;
 }
 
+GC_PTR GC_get_thread_stack_base()
+{
+  extern GC_PTR _tlsbase __asm__ ("%fs:4");
+  return _tlsbase;
+}
+
 #else /* !CYGWIN32 */
 
 /*
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/configure.ac src/gcc-4.3.2/configure.ac
--- origsrc/gcc-4.3.2/configure.ac	2008-02-02 03:29:30.000000000 +0000
+++ src/gcc-4.3.2/configure.ac	2008-12-29 21:20:05.625000000 +0000
@@ -681,7 +681,7 @@ case "${target}" in
     ;;    
   *-*-cygwin*)
     target_configdirs="$target_configdirs target-libtermcap target-winsup"
-    noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
+    noconfigdirs="$noconfigdirs target-gperf target-libgloss"
     # always build newlib if winsup directory is present.
     if test -d "$srcdir/winsup/cygwin"; then
       skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/DEV-PHASE src/gcc-4.3.2/gcc/DEV-PHASE
--- origsrc/gcc-4.3.2/gcc/DEV-PHASE	2008-08-27 19:04:14.000000000 +0100
+++ src/gcc-4.3.2/gcc/DEV-PHASE	2008-12-29 21:20:05.640625000 +0000
@@ -0,0 +1 @@
+beta
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/REVISION src/gcc-4.3.2/gcc/REVISION
--- origsrc/gcc-4.3.2/gcc/REVISION	1970-01-01 00:00:00.000000000 +0000
+++ src/gcc-4.3.2/gcc/REVISION	2008-12-29 21:20:05.640625000 +0000
@@ -0,0 +1 @@
+2
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/ada/Makefile.in src/gcc-4.3.2/gcc/ada/Makefile.in
--- origsrc/gcc-4.3.2/gcc/ada/Makefile.in	2008-02-13 19:04:53.000000000 +0000
+++ src/gcc-4.3.2/gcc/ada/Makefile.in	2008-12-29 21:20:05.640625000 +0000
@@ -198,6 +198,10 @@ TARGET_ADA_SRCS =
 # Type of tools build we are doing; default is not compiling tools.
 TOOLSCASE =
 
+# Which install goal to use.
+INSTALL_GNATLIB_MAIN  = install-gnatlib
+INSTALL_GNATLIB_WIN32 = unused-install-gnatlib
+
 # End of variables for you to override.
 
 all: all.indirect
@@ -1298,7 +1302,7 @@ endif
   LIBRARY_VERSION := $(subst .,_,$(LIB_VERSION))
 endif
 
-ifeq ($(strip $(filter-out cygwin32% mingw32% pe,$(osys))),)
+ifeq ($(strip $(filter-out cygwin% mingw% pe,$(osys))),)
   LIBGNAT_TARGET_PAIRS = \
   a-dirval.adb<a-dirval-mingw.adb \
   a-excpol.adb<a-excpol-abort.adb \
@@ -1311,8 +1315,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-soccon.ads<g-soccon-mingw.ads \
   g-soliop.ads<g-soliop-mingw.ads
@@ -1342,7 +1344,17 @@ ifeq ($(strip $(filter-out cygwin32% min
     EXTRA_GNATRTL_NONTASKING_OBJS = g-regist.o
     EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o
 
-    MISCLIB = -lwsock32
+    # Which install goal to use.
+    INSTALL_GNATLIB_MAIN  = unused-install-gnatlib
+    INSTALL_GNATLIB_WIN32 = install-gnatlib
+
+    # 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.
@@ -1798,7 +1810,7 @@ gnatbl.o: gnatbl.c adaint.h
 	  true; \
 	fi
 
-install-gnatlib: ../stamp-gnatlib
+$(INSTALL_GNATLIB_MAIN): ../stamp-gnatlib
 #	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.
@@ -1840,6 +1852,48 @@ install-gnatlib: ../stamp-gnatlib
 	cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb
 	cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads
 
+$(INSTALL_GNATLIB_WIN32): ../stamp-gnatlib
+#	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.  This is the win32 version.
+	-$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
+	-$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
+	$(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
+	$(RMDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
+	-$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
+	-$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
+	for file in rts/*.ali; do \
+	    $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
+	done
+	-$(INSTALL_DATA) rts/g-trasym$(objext) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
+	-cd rts; for file in *$(arext);do \
+	    $(INSTALL_DATA) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
+	    $(RANLIB_FOR_TARGET) $(DESTDIR)$(ADA_RTL_OBJ_DIR)/$$file; \
+	done
+	-$(foreach file, $(EXTRA_ADALIB_FILES), \
+	    $(INSTALL_DATA_DATE) rts/$(file) $(DESTDIR)$(ADA_RTL_OBJ_DIR) && \
+	) true
+#     Install the shared libraries, if any, using $(INSTALL) instead
+#     of $(INSTALL_DATA). The latter may force a mode inappropriate
+#     for shared libraries on some targets, e.g. on HP-UX where the x
+#     permission is required.  We are win32 here.
+	for file in gnat gnarl; do \
+	   if [ -f rts/cyg$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \
+	      $(INSTALL) rts/cyg$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
+			 $(DESTDIR)$(bindir); \
+	   fi; \
+	   if [ -f rts/cyg$${file}$(soext) ]; then \
+	      $(LN_S) cyg$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
+	      $(DESTDIR)$(bindir)/lib$${file}$(soext); \
+	   fi; \
+	done
+# This copy must be done preserving the date on the original file.
+	for file in rts/*.ad?; do \
+	    $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_INCLUDE_DIR); \
+	done
+	cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb
+	cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads
+
 ../stamp-gnatlib2:
 	$(RM) rts/s-*.ali
 	$(RM) rts/s-*$(objext)
@@ -1996,14 +2050,18 @@ gnatlib-shared-win32:
              gnatlib
 	$(RM) rts/libgna*$(soext)
 	cd rts; ../../xgcc -B../../ -shared $(TARGET_LIBGCC2_CFLAGS) \
-		-o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
+		-o cyggnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
+		-Wl,--out-implib,libgnat$(soext)$(arext) \
 		$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
-		$(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
+		$(SO_OPTS)cyggnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB) \
+		-Wl,--enable-auto-import
 	cd rts; ../../xgcc -B../../ -shared $(TARGET_LIBGCC2_CFLAGS) \
-		-o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
+		-o cyggnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
+		-Wl,--out-implib,libgnarl$(soext)$(arext) \
 		$(GNATRTL_TASKING_OBJS) \
-		$(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
-		$(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
+		$(SO_OPTS)cyggnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
+		-L. $(THREADSLIB) -Wl,libgnat$(soext)$(arext) \
+		-Wl,--enable-auto-import
 
 gnatlib-shared-darwin:
 	$(MAKE) $(FLAGS_TO_PASS) \
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/ada/gsocket.h src/gcc-4.3.2/gcc/ada/gsocket.h
--- origsrc/gcc-4.3.2/gcc/ada/gsocket.h	2008-02-13 19:04:53.000000000 +0000
+++ src/gcc-4.3.2/gcc/ada/gsocket.h	2008-12-29 21:20:05.656250000 +0000
@@ -173,7 +173,7 @@
  * VxWorks and VMS).
  */
 
-#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__)
 # define HAVE_THREAD_SAFE_GETxxxBYyyy 1
 #elif defined (sgi) || defined (linux) || (defined (sun) && defined (__SVR4) && !defined (__vxworks))
 # define HAVE_GETxxxBYyyy_R 1
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/ada/sysdep.c src/gcc-4.3.2/gcc/ada/sysdep.c
--- origsrc/gcc-4.3.2/gcc/ada/sysdep.c	2008-01-03 09:35:04.000000000 +0000
+++ src/gcc-4.3.2/gcc/ada/sysdep.c	2008-12-29 21:20:05.656250000 +0000
@@ -397,7 +397,7 @@ getc_immediate_common (FILE *stream,
 {
 #if defined (linux) || defined (sun) || defined (sgi) || defined (__EMX__) \
     || (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__)
   char c;
@@ -684,6 +684,40 @@ rts_get_nShowCmd (void)
 }
 
 #endif /* WINNT */
+
+#ifdef __CYGWIN__
+
+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 -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/config/i386/cygming-crtbegin.c src/gcc-4.3.2/gcc/config/i386/cygming-crtbegin.c
--- origsrc/gcc-4.3.2/gcc/config/i386/cygming-crtbegin.c	2007-07-05 08:07:34.000000000 +0100
+++ src/gcc-4.3.2/gcc/config/i386/cygming-crtbegin.c	2008-12-29 21:20:05.656250000 +0000
@@ -65,6 +65,12 @@ extern void _Jv_RegisterClasses (const v
 # define EH_FRAME_SECTION_CONST
 #endif
 
+/* We need to indirect through a variable, as gcc assumes
+ that a function label used as a constant is never zero.  */
+void (*register_frame_info_ptr) (const void *, struct object *) = __register_frame_info;
+void *(*deregister_frame_info_ptr) (const void *) = __deregister_frame_info;
+void (*jv_registerclasses_ptr) (const void *) = _Jv_RegisterClasses;
+
 /* Stick a label at the beginning of the frame unwind info so we can
    register/deregister it with the exception handling library code.  */
 #if DWARF2_UNWIND_INFO
@@ -93,15 +99,30 @@ __gcc_register_frame (void)
 /* Weak undefined symbols won't be pulled in from dlls; hence
    we first test if the dll is already loaded and, if so,
    get the symbol's address at run-time.  If the dll is not loaded,
-   fallback to weak linkage to static archive.  */
+   fallback to weak linkage to static archive.  Fallback also
+   if the DLL is loaded but does not export the routine.   */
 
-  void (*register_frame_fn) (const void *, struct object *);
+  void (*register_frame_fn) (const void *, struct object *) = 0;
   HANDLE h = GetModuleHandle (LIBGCC_SONAME);
   if (h)
     register_frame_fn = (void (*) (const void *, struct object *))
 			GetProcAddress (h, "__register_frame_info");
-  else 
-    register_frame_fn = __register_frame_info;
+  /* Can't use
+
+  if (!register_frame_fn)
+    register_frame_fn = register_frame_info_ptr;
+
+  directly, as gcc infers that the address of a function cannot
+  be zero, but in the case of an unlinked weak definition it can.
+  It would clearly be undefined code to use the address of an
+  unlinked weak function in a function call context, but I don't
+  know whether gcc is right to infer it's always non-zero when
+  being taken as a pointer-to-function constant.  */
+  if (!register_frame_fn)
+    register_frame_fn = register_frame_info_ptr;
+
+  /* We use weak references so as to not pull in all the EH machinery
+  unless it's actually required by something else in the final link.  */
   if (register_frame_fn)
      register_frame_fn (__EH_FRAME_BEGIN__, &obj);
 #endif
@@ -109,13 +130,13 @@ __gcc_register_frame (void)
 #if TARGET_USE_JCR_SECTION 
   if (__JCR_LIST__[0])
     {
-      void (*register_class_fn) (const void *);
+      void (*register_class_fn) (const void *) = 0;
       HANDLE h = GetModuleHandle (LIBGCJ_SONAME);
       if (h)
 	register_class_fn = (void (*) (const void *))
 			     GetProcAddress (h, "_Jv_RegisterClasses");
-      else
-	register_class_fn = _Jv_RegisterClasses;
+      if (!register_class_fn)
+	register_class_fn = jv_registerclasses_ptr;
 
       if (register_class_fn)
 	register_class_fn (__JCR_LIST__);
@@ -127,13 +148,13 @@ void
 __gcc_deregister_frame (void)
 {
 #if DWARF2_UNWIND_INFO
-  void *  (*deregister_frame_fn) (const void *);
+  void *  (*deregister_frame_fn) (const void *) = 0;
   HANDLE h = GetModuleHandle (LIBGCC_SONAME);
   if (h)
     deregister_frame_fn = (void* (*) (const void *))
 			  GetProcAddress (h, "__deregister_frame_info");
-  else 
-    deregister_frame_fn = __deregister_frame_info;
+  if (!deregister_frame_fn)
+    deregister_frame_fn = deregister_frame_info_ptr;
   if (deregister_frame_fn)
      deregister_frame_fn (__EH_FRAME_BEGIN__);
 #endif
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/config/i386/cygwin.h src/gcc-4.3.2/gcc/config/i386/cygwin.h
--- origsrc/gcc-4.3.2/gcc/config/i386/cygwin.h	2007-08-02 11:49:31.000000000 +0100
+++ src/gcc-4.3.2/gcc/config/i386/cygwin.h	2008-12-29 21:20:05.671875000 +0000
@@ -51,7 +51,8 @@ along with GCC; see the file COPYING3.  
 
 #undef LIBGCC_SPEC
 #define LIBGCC_SPEC \
-  "%{mno-cygwin: %{mthreads:-lmingwthrd} -lmingw32} -lgcc	\
+  "%{mno-cygwin: %{mthreads:-lmingwthrd} -lmingw32} \
+   %{shared-libgcc:-lgcc_s} -lgcc \
    %{mno-cygwin:-lmoldname -lmingwex -lmsvcrt}"
 
 /* We have to dynamic link to get to the system DLLs.  All of libc, libm and
@@ -68,6 +69,19 @@ along with GCC; see the file COPYING3.  
   %{mwindows:-lgdi32 -lcomdlg32} \
   -luser32 -lkernel32 -ladvapi32 -lshell32"
 
+/* Weak symbols do not get resolved if using a Windows dll import lib.
+   Make the unwind registration references strong undefs.  */
+#if DWARF2_UNWIND_INFO
+#define SHARED_LIBGCC_UNDEFS_SPEC \
+ "%{shared-libgcc: -u ___register_frame_info -u ___deregister_frame_info}"
+#else
+#define SHARED_LIBGCC_UNDEFS_SPEC ""
+#endif
+
+#undef  SUBTARGET_EXTRA_SPECS
+#define SUBTARGET_EXTRA_SPECS						\
+  { "shared_libgcc_undefs", SHARED_LIBGCC_UNDEFS_SPEC }
+
 #define LINK_SPEC "\
   %{mwindows:--subsystem windows} \
   %{mconsole:--subsystem console} \
@@ -75,9 +89,10 @@ along with GCC; see the file COPYING3.  
   %{shared: --shared} %{mdll:--dll} \
   %{static:-Bstatic} %{!static:-Bdynamic} \
   %{shared|mdll: -e \
-    %{mno-cygwin:_DllMainCRTStartup@12} \
-    %{!mno-cygwin:__cygwin_dll_entry@12}}\
-  %{!mno-cygwin:--dll-search-prefix=cyg}"
+    %{mno-cygwin:_DllMainCRTStartup@12 --enable-auto-image-base} \
+    %{!mno-cygwin:__cygwin_dll_entry@12 --enable-auto-image-base}}\
+  %{!mno-cygwin:--dll-search-prefix=cyg}\
+  %(shared_libgcc_undefs)"
 
 /* Allocate space for all of the machine-spec-specific stuff.
    Allocate enough space for cygwin -> mingw32  munging plus
@@ -242,3 +257,28 @@ while (0)
    and the -pthread flag is not recognized.  */
 #undef GOMP_SELF_SPECS
 #define GOMP_SELF_SPECS ""
+
+/* This must be kept in synch with the definition of SHLIB_SONAME
+   in the t-cygwin makefile fragment.  */
+#define LIBGCC_SONAME "cyggcc_s-1.dll"
+
+#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 -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/config/i386/cygwin1.c src/gcc-4.3.2/gcc/config/i386/cygwin1.c
--- origsrc/gcc-4.3.2/gcc/config/i386/cygwin1.c	2007-08-02 11:49:31.000000000 +0100
+++ src/gcc-4.3.2/gcc/config/i386/cygwin1.c	2008-12-29 21:20:05.671875000 +0000
@@ -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 = xmalloc (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 -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/config/i386/cygwin2.c src/gcc-4.3.2/gcc/config/i386/cygwin2.c
--- origsrc/gcc-4.3.2/gcc/config/i386/cygwin2.c	2007-08-02 11:49:31.000000000 +0100
+++ src/gcc-4.3.2/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 -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/config/i386/t-cygming src/gcc-4.3.2/gcc/config/i386/t-cygming
--- origsrc/gcc-4.3.2/gcc/config/i386/t-cygming	2005-10-12 21:54:50.000000000 +0100
+++ src/gcc-4.3.2/gcc/config/i386/t-cygming	2008-12-29 21:20:05.671875000 +0000
@@ -30,3 +30,25 @@ winnt-stubs.o: $(srcdir)/config/i386/win
 	$(srcdir)/config/i386/winnt-stubs.c
 
 STMP_FIXINC=stmp-fixinc
+
+# Effectively disable the crtbegin/end rules using crtstuff.c
+T = disable
+
+# Additional sources to handle exceptions; overridden by targets as needed.
+LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \
+   $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c \
+   # added in gcc/Makefile.in, hardcoded in libgcc.mvars: rule $(srcdir)/emutls.c
+
+crtbegin.o: $(srcdir)/config/i386/cygming-crtbegin.c $(GCC_PASSES)
+	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) -fno-omit-frame-pointer -c -o crtbegin.o \
+	$(srcdir)/config/i386/cygming-crtbegin.c
+
+crtend.o: $(srcdir)/config/i386/cygming-crtend.c $(GCC_PASSES)
+	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) -fno-omit-frame-pointer -c -o crtend.o  \
+	$(srcdir)/config/i386/cygming-crtend.c
+
+crtfastmath.o: $(srcdir)/config/i386/crtfastmath.c $(GCC_PASSES)
+	$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -msse -minline-all-stringops -c \
+		$(srcdir)/config/i386/crtfastmath.c \
+		-o crtfastmath.o
+
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/config/i386/t-cygwin src/gcc-4.3.2/gcc/config/i386/t-cygwin
--- origsrc/gcc-4.3.2/gcc/config/i386/t-cygwin	2004-02-22 00:04:38.000000000 +0000
+++ src/gcc-4.3.2/gcc/config/i386/t-cygwin	2008-12-29 21:20:05.687500000 +0000
@@ -9,8 +9,55 @@ cygwin1.o: $(srcdir)/config/i386/cygwin1
 	$(CC) -c $(ALL_CFLAGS) $(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)
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-	$(srcdir)/config/i386/cygwin2.c
+
+# Build a shared libgcc DLL and import stub library for Win32.
+# We fold the static libgcc_eh into the DLL for convenience.
+# This requires libstdc++-v3 to also be a DLL, as it throws
+# during shutdown and if statically linked the eh tables from
+# the shared libgcc would already be deregistered at the time.
+
+SHLIB_EXT = .dll
+SHLIB_SOVERSION = 1
+# Ensure the #define LIBGCC_SONAME in cygwin.h is kept in sync. with this definition. 
+SHLIB_SONAME = cyggcc_s-$(SHLIB_SOVERSION).dll
+SHLIB_IMPLIBNAME = libgcc_s.dll.a
+SHLIB_OBJS = @shlib_objs@
+SHLIB_DIR = @multilib_dir@
+SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
+SHLIB_LC = -lcygwin -lkernel32
+
+SHLIB_LINK = \
+	cp -f libgcc.a cyggcc_t.a && \
+	${AR_FOR_TARGET} -x cyggcc_t.a _chkstk.o _ctors.o && \
+	${AR_FOR_TARGET} -d cyggcc_t.a _chkstk.o _ctors.o && \
+	${DLLTOOL_FOR_TARGET} --output-def cyggcc_s.def --export-all cyggcc_t.a libgcc_eh.a && \
+	$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
+	  -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
+	  -Wl,--out-implib,$(SHLIB_DIR)/$(SHLIB_IMPLIBNAME).tmp \
+	  cyggcc_s.def cyggcc_t.a libgcc_eh.a $(SHLIB_LC) && \
+	$(RM) $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_IMPLIBNAME).tmp  && \
+	if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
+	  mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
+		$(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
+	  mv -f $(SHLIB_DIR)/$(SHLIB_IMPLIBNAME) \
+		$(SHLIB_DIR)/$(SHLIB_IMPLIBNAME).backup; \
+	else true; fi && \
+	$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
+	  -o $(SHLIB_DIR)/$(SHLIB_SONAME) @multilib_flags@ \
+	  -Wl,--out-implib,$(SHLIB_DIR)/$(SHLIB_IMPLIBNAME) \
+	  cyggcc_s.def cyggcc_t.a libgcc_eh.a $(SHLIB_LC) && \
+	chmod a+x $(SHLIB_DIR)/$(SHLIB_SONAME) && \
+	${AR_FOR_TARGET} -rs  $(SHLIB_DIR)/$(SHLIB_IMPLIBNAME) _chkstk.o _ctors.o && \
+	rm -f cyggcc_t.a _chkstk.o _ctors.o cyggcc_s.def
+
+# $(slibdir) double quoted to protect it from expansion while building
+# libgcc.mk.  We want this delayed until actual install time.
+
+SHLIB_INSTALL = \
+	$$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL) $$(DESTDIR)$$(libdir)$(SHLIB_LIBDIR_QUAL); \
+	$(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
+	  $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
+	$(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_IMPLIBNAME) \
+	  $$(DESTDIR)$$(libsubdir)$(SHLIB_LIBDIR_QUAL)/$(SHLIB_IMPLIBNAME); \
+	chmod a+x $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME);
 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/config.gcc src/gcc-4.3.2/gcc/config.gcc
--- origsrc/gcc-4.3.2/gcc/config.gcc	2008-06-09 17:32:15.000000000 +0100
+++ src/gcc-4.3.2/gcc/config.gcc	2008-12-29 21:20:05.687500000 +0000
@@ -1372,8 +1372,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=cygwin2.o
-	cxx_target_objs="cygwin2.o winnt-cxx.o"
+	c_target_objs=
+	cxx_target_objs=winnt-cxx.o
 	extra_gcc_objs=cygwin1.o
 	if test x$enable_threads = xyes; then
 		thread_file='posix'
@@ -1394,6 +1394,7 @@ i[34567]86-*-mingw32* | x86_64-*-mingw32
 	  tmake_file="${tmake_file} i386/t-gthr-win32"
 	  ;;
 	esac
+	extra_parts="crtbegin.o crtend.o crtfastmath.o"
 	case ${target} in
 		*mingw32crt*)
 			tm_file="${tm_file} i386/crtdll.h"
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/cp/decl2.c src/gcc-4.3.2/gcc/cp/decl2.c
--- origsrc/gcc-4.3.2/gcc/cp/decl2.c	2008-07-30 14:18:31.000000000 +0100
+++ src/gcc-4.3.2/gcc/cp/decl2.c	2008-12-29 21:20:05.703125000 +0000
@@ -1619,11 +1619,6 @@ import_export_class (tree ctype)
 	import_export = (DECL_REALLY_EXTERN (method) ? -1 : 1);
     }
 
-  /* When MULTIPLE_SYMBOL_SPACES is set, we cannot count on seeing
-     a definition anywhere else.  */
-  if (MULTIPLE_SYMBOL_SPACES && import_export == -1)
-    import_export = 0;
-
   /* Allow back ends the chance to overrule the decision.  */
   if (targetm.cxx.import_export_class)
     import_export = targetm.cxx.import_export_class (ctype, import_export);
@@ -2304,14 +2299,23 @@ import_export_decl (tree decl)
 	{
 	  class_type = type;
 	  import_export_class (type);
-	  if (CLASSTYPE_INTERFACE_KNOWN (type)
-	      && TYPE_POLYMORPHIC_P (type)
-	      && CLASSTYPE_INTERFACE_ONLY (type)
-	      /* If -fno-rtti was specified, then we cannot be sure
-		 that RTTI information will be emitted with the
-		 virtual table of the class, so we must emit it
-		 wherever it is used.  */
-	      && flag_rtti)
+
+	  /* Do not import tinfo nodes if the class has dllimport attribute.
+	     Dllimports do not have a constant address at compile time, so
+	     static initialization of tables with RTTI fields is a problem.
+	     Set to comdat instead.   */
+	  if (MULTIPLE_SYMBOL_SPACES
+	      && TARGET_DLLIMPORT_DECL_ATTRIBUTES
+	      && lookup_attribute ("dllimport", TYPE_ATTRIBUTES (type)))
+	    comdat_p = true;
+	  else if (CLASSTYPE_INTERFACE_KNOWN (type)
+	      	   && TYPE_POLYMORPHIC_P (type)
+	           && CLASSTYPE_INTERFACE_ONLY (type)
+	           /* If -fno-rtti was specified, then we cannot be sure
+		      that RTTI information will be emitted with the
+		      virtual table of the class, so we must emit it
+		      wherever it is used.  */
+	           && flag_rtti)
 	    import_p = true;
 	  else
 	    {
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/dwarf2out.c src/gcc-4.3.2/gcc/dwarf2out.c
--- origsrc/gcc-4.3.2/gcc/dwarf2out.c	2008-08-11 11:26:08.000000000 +0100
+++ src/gcc-4.3.2/gcc/dwarf2out.c	2008-12-29 21:20:05.718750000 +0000
@@ -4367,6 +4367,7 @@ static int get_AT_flag (dw_die_ref, enum
 static unsigned get_AT_unsigned (dw_die_ref, enum dwarf_attribute);
 static inline dw_die_ref get_AT_ref (dw_die_ref, enum dwarf_attribute);
 static bool is_c_family (void);
+static bool is_c (void);
 static bool is_cxx (void);
 static bool is_java (void);
 static bool is_fortran (void);
@@ -5746,6 +5747,17 @@ is_c_family (void)
 	  || lang == DW_LANG_C_plus_plus || lang == DW_LANG_ObjC_plus_plus);
 }
 
+/* Return TRUE if the language is C.  */
+
+static inline bool
+is_c (void)
+{
+  unsigned int lang = get_AT_unsigned (comp_unit_die, DW_AT_language);
+
+  return (lang == DW_LANG_C || lang == DW_LANG_C89
+	  || lang == DW_LANG_C99 || lang == DW_LANG_ObjC);
+}
+
 /* Return TRUE if the language is C++.  */
 
 static inline bool
@@ -11585,7 +11597,7 @@ add_name_and_src_coords_attributes (dw_d
 	  && DECL_ASSEMBLER_NAME (decl) != DECL_NAME (decl)
 	  && !DECL_ABSTRACT (decl)
 	  && !(TREE_CODE (decl) == VAR_DECL && DECL_REGISTER (decl))
-	  && !is_fortran ())
+	  && !is_fortran () && !is_c ())
 	add_AT_string (die, DW_AT_MIPS_linkage_name,
 		       IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)));
     }
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/gcc.c src/gcc-4.3.2/gcc/gcc.c
--- origsrc/gcc-4.3.2/gcc/gcc.c	2008-03-02 22:55:19.000000000 +0000
+++ src/gcc-4.3.2/gcc/gcc.c	2008-12-29 21:20:05.718750000 +0000
@@ -1762,7 +1762,7 @@ init_spec (void)
        when given the proper command line arguments.  */
     while (*p)
       {
-	if (in_sep && *p == '-' && strncmp (p, "-lgcc", 5) == 0)
+	if (in_sep && *p == '-' && !strncmp (p, "-lgcc", 5) && (!p[5] || isspace(p[5])))
 	  {
 	    init_gcc_specs (&obstack,
 			    "-lgcc_s"
@@ -1784,7 +1784,7 @@ init_spec (void)
 	    p += 5;
 	    in_sep = 0;
 	  }
-	else if (in_sep && *p == 'l' && strncmp (p, "libgcc.a%s", 10) == 0)
+	else if (in_sep && *p == 'l' && !strncmp (p, "libgcc.a%s", 10) && (!p[10] || isspace(p[10])))
 	  {
 	    /* Ug.  We don't know shared library extensions.  Hope that
 	       systems that use this form don't do shared libraries.  */
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/java/Make-lang.in src/gcc-4.3.2/gcc/java/Make-lang.in
--- origsrc/gcc-4.3.2/gcc/java/Make-lang.in	2008-04-01 19:49:36.000000000 +0100
+++ src/gcc-4.3.2/gcc/java/Make-lang.in	2008-12-29 21:20:05.734375000 +0000
@@ -101,7 +101,7 @@ java/parse.o-warn = -Wno-error
 
 jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS) attribs.o
 	rm -f $@
-	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
+	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -Wl,-stack,0x8000000 -o $@ \
 		$(JAVA_OBJS) $(BACKEND) $(ZLIB) $(LIBICONV) $(LIBS) attribs.o $(GMPLIBS)
 
 jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIBDEPS)
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/libgcc2.c src/gcc-4.3.2/gcc/libgcc2.c
--- origsrc/gcc-4.3.2/gcc/libgcc2.c	2007-11-05 11:41:40.000000000 +0000
+++ src/gcc-4.3.2/gcc/libgcc2.c	2008-12-29 21:20:05.734375000 +0000
@@ -2093,7 +2093,7 @@ TRANSFER_FROM_TRAMPOLINE
 #endif
 #endif /* L_trampoline */
 \f
-#ifndef __CYGWIN__
+#if !(defined  __CYGWIN__ || defined  __MINGW32__)
 #ifdef L__main
 
 #include "gbl-ctors.h"
@@ -2191,7 +2191,7 @@ SYMBOL__MAIN (void)
 #endif /* no HAS_INIT_SECTION or INVOKE__main */
 
 #endif /* L__main */
-#endif /* __CYGWIN__ */
+#endif /* __CYGWIN__ || __MINGW32__ */
 \f
 #ifdef L_ctors
 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/testsuite/ada/acats/run_all.sh src/gcc-4.3.2/gcc/testsuite/ada/acats/run_all.sh
--- origsrc/gcc-4.3.2/gcc/testsuite/ada/acats/run_all.sh	2006-09-14 11:12:03.000000000 +0100
+++ src/gcc-4.3.2/gcc/testsuite/ada/acats/run_all.sh	2008-12-29 21:20:05.765625000 +0000
@@ -13,7 +13,7 @@ gccflags="-O2"
 gnatflags="-gnatws"
 
 target_run () {
-$*
+	$testdir/run_test.exp $1 > $2 2>&1
 }
 
 # End of customization section.
@@ -99,7 +99,7 @@ cp $testdir/support/*.ada $testdir/suppo
 
 # Find out the size in bit of an address on the target
 target_gnatmake $testdir/support/impbit.adb >> $dir/acats.log 2>&1
-target_run $dir/support/impbit > $dir/support/impbit.out 2>&1
+target_run $dir/support/impbit $dir/support/impbit.out
 target_bit=`cat $dir/support/impbit.out`
 echo target_bit="$target_bit" >> $dir/acats.log
 
@@ -276,7 +276,7 @@ for chapter in $chapters; do
       if [ ! -x $dir/tests/$chapter/$i/$binmain ]; then
          sync
       fi
-      target_run $dir/tests/$chapter/$i/$binmain > $dir/tests/$chapter/$i/${i}.log 2>&1
+      target_run $dir/tests/$chapter/$i/$binmain $dir/tests/$chapter/$i/${i}.log
       cd $dir/tests/$chapter/$i
       cat ${i}.log >> $dir/acats.log
       egrep -e '(==== |\+\+\+\+ |\!\!\!\! )' ${i}.log > /dev/null 2>&1
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/testsuite/ada/acats/run_test.exp src/gcc-4.3.2/gcc/testsuite/ada/acats/run_test.exp
--- origsrc/gcc-4.3.2/gcc/testsuite/ada/acats/run_test.exp	1970-01-01 00:00:00.000000000 +0000
+++ src/gcc-4.3.2/gcc/testsuite/ada/acats/run_test.exp	2008-12-29 21:20:05.765625000 +0000
@@ -0,0 +1,10 @@
+#!/usr/bin/expect -f
+
+set timeout 300
+
+spawn $argv
+expect timeout {
+       send_user "Program timed out.\n"
+       exit 1
+}
+
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/testsuite/lib/g++.exp src/gcc-4.3.2/gcc/testsuite/lib/g++.exp
--- origsrc/gcc-4.3.2/gcc/testsuite/lib/g++.exp	2007-09-06 17:24:05.000000000 +0100
+++ src/gcc-4.3.2/gcc/testsuite/lib/g++.exp	2008-12-29 21:20:05.765625000 +0000
@@ -251,6 +251,10 @@ proc g++_init { args } {
 	lappend ALWAYS_CXXFLAGS "ldflags=-multiply_defined suppress"
        }
 
+    if { [string match "*-*-cygwin*" $target_triplet] } {
+	lappend ALWAYS_CXXFLAGS "ldflags=-Wl,--enable-auto-import"
+       }
+
     verbose -log "ALWAYS_CXXFLAGS set to $ALWAYS_CXXFLAGS"
 
     verbose "g++ is initialized" 3
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/testsuite/lib/gfortran.exp src/gcc-4.3.2/gcc/testsuite/lib/gfortran.exp
--- origsrc/gcc-4.3.2/gcc/testsuite/lib/gfortran.exp	2007-08-01 17:25:11.000000000 +0100
+++ src/gcc-4.3.2/gcc/testsuite/lib/gfortran.exp	2008-12-29 21:20:05.781250000 +0000
@@ -77,6 +77,7 @@ proc gfortran_link_flags { paths } {
     global ld_library_path
     global GFORTRAN_UNDER_TEST
     global shlib_ext
+    global target_triplet
 
     set gccpath ${paths}
     set libio_dir ""
@@ -100,6 +101,9 @@ proc gfortran_link_flags { paths } {
       if [file exists "${gccpath}/libiberty/libiberty.a"] {
           append flags "-L${gccpath}/libiberty "
       }
+      if { [istarget "*-*-cygwin*"] } {
+          append flags  "-L${gccpath}/libgcc "
+      }
       append ld_library_path \
 	[gcc-set-multilib-library-path $GFORTRAN_UNDER_TEST]
     }
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/testsuite/lib/obj-c++.exp src/gcc-4.3.2/gcc/testsuite/lib/obj-c++.exp
--- origsrc/gcc-4.3.2/gcc/testsuite/lib/obj-c++.exp	2007-08-01 17:25:11.000000000 +0100
+++ src/gcc-4.3.2/gcc/testsuite/lib/obj-c++.exp	2008-12-29 21:20:05.781250000 +0000
@@ -265,6 +265,10 @@ proc obj-c++_init { args } {
 	lappend ALWAYS_OBJCXXFLAGS "ldflags=-multiply_defined suppress"
        }
 
+    if { [string match "*-*-cygwin*" $target_triplet] } {
+	lappend ALWAYS_OBJCXXFLAGS "ldflags=-Wl,--enable-auto-import"
+       }
+
     verbose -log "ALWAYS_OBJCXXFLAGS set to $ALWAYS_OBJCXXFLAGS"
 
     verbose "obj-c++ is initialized" 3
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/gcc/testsuite/lib/objc.exp src/gcc-4.3.2/gcc/testsuite/lib/objc.exp
--- origsrc/gcc-4.3.2/gcc/testsuite/lib/objc.exp	2007-12-29 15:14:16.000000000 +0000
+++ src/gcc-4.3.2/gcc/testsuite/lib/objc.exp	2008-12-29 21:20:05.781250000 +0000
@@ -128,6 +128,7 @@ proc objc_target_compile { source dest t
     global ld_library_path
     global objc_libgcc_s_path
     global shlib_ext
+    global target_triplet
 
     set ld_library_path ".:${objc_libgcc_s_path}"
     lappend options "libs=-lobjc"
@@ -148,6 +149,11 @@ proc objc_target_compile { source dest t
     if [target_info exists objc,no_label_values] {
 	lappend options "additional_flags=-DNO_LABEL_VALUES"
     }
+
+    if { [string match "*-*-cygwin*" $target_triplet] } {
+	lappend options "additional_flags=-Wl,--enable-auto-import"
+    }
+
     # TOOL_OPTIONS must come first, so that it doesn't override testcase
     # specific options.
     if [info exists TOOL_OPTIONS] {
@@ -191,6 +197,12 @@ proc objc_target_compile { source dest t
 	# If we generating a precompiled header, we have say this is an
 	# objective-C header
 	set source [concat "-x objective-c-header" $source]
+	# ?? Cygwin requires us to specify -c otherwise undefined reference
+	# to WinMain@16 ??  I don't get this.  Why does precompiling a
+	# header want to do a final link?
+	if { [string match "*-*-cygwin*" $target_triplet] } {
+	    lappend options "additional_flags=-c"
+	}
     }
     lappend options "compiler=$OBJC_UNDER_TEST"
 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libffi/Makefile.am src/gcc-4.3.2/libffi/Makefile.am
--- origsrc/gcc-4.3.2/libffi/Makefile.am	2007-09-03 19:08:54.000000000 +0100
+++ src/gcc-4.3.2/libffi/Makefile.am	2008-12-29 21:20:05.796875000 +0000
@@ -71,6 +71,8 @@ AM_MAKEFLAGS = \
 	"CXX=$(CXX)" \
 	"LD=$(LD)" \
 	"NM=$(NM)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"RANLIB=$(RANLIB)" \
 	"DESTDIR=$(DESTDIR)"
 
@@ -156,7 +158,7 @@ nodist_libffi_convenience_la_SOURCES = $
 
 AM_CFLAGS = -Wall -g -fexceptions
 
-libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
+libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -no-undefined
 
 AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
 AM_CCASFLAGS = $(AM_CPPFLAGS)
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libffi/Makefile.in src/gcc-4.3.2/libffi/Makefile.in
--- origsrc/gcc-4.3.2/libffi/Makefile.in	2008-08-27 19:09:37.000000000 +0100
+++ src/gcc-4.3.2/libffi/Makefile.in	2008-12-29 21:22:38.375000000 +0000
@@ -37,6 +37,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 @MIPS_TRUE@am__append_1 = src/mips/ffi.c src/mips/o32.S src/mips/n32.S
 @X86_TRUE@am__append_2 = src/x86/ffi.c src/x86/sysv.S
 @X86_WIN32_TRUE@am__append_3 = src/x86/ffi.c src/x86/win32.S
@@ -419,6 +420,8 @@ AM_MAKEFLAGS = \
 	"CXX=$(CXX)" \
 	"LD=$(LD)" \
 	"NM=$(NM)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"RANLIB=$(RANLIB)" \
 	"DESTDIR=$(DESTDIR)"
 
@@ -439,7 +442,7 @@ nodist_libffi_la_SOURCES = $(am__append_
 libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
 nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
 AM_CFLAGS = -Wall -g -fexceptions
-libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
+libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -no-undefined
 AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
 AM_CCASFLAGS = $(AM_CPPFLAGS)
 all: fficonfig.h
@@ -920,7 +923,7 @@ clean-libtool:
 	-rm -rf src/x86/.libs src/x86/_libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 
 # GNU Make needs to see an explicit $(MAKE) variable in the command it
 # runs to enable its job server during parallel builds.  Hence the
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libffi/include/Makefile.in src/gcc-4.3.2/libffi/include/Makefile.in
--- origsrc/gcc-4.3.2/libffi/include/Makefile.in	2007-09-03 19:08:54.000000000 +0100
+++ src/gcc-4.3.2/libffi/include/Makefile.in	2008-12-29 21:22:37.921875000 +0000
@@ -37,6 +37,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 subdir = include
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(srcdir)/ffi.h.in $(toollibffi_HEADERS)
@@ -273,7 +274,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 install-toollibffiHEADERS: $(toollibffi_HEADERS)
 	@$(NORMAL_INSTALL)
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libffi/src/x86/win32.S src/gcc-4.3.2/libffi/src/x86/win32.S
--- origsrc/gcc-4.3.2/libffi/src/x86/win32.S	2005-08-11 22:18:24.000000000 +0100
+++ src/gcc-4.3.2/libffi/src/x86/win32.S	2008-12-29 21:20:05.812500000 +0000
@@ -32,12 +32,13 @@
  
 .text
  
-.globl ffi_prep_args
+.globl _ffi_prep_args
  
         # This assumes we are using gas.
         .balign 16
 .globl _ffi_call_SYSV
- 
+	.def	_ffi_call_SYSV;	.scl	2;	.type	32;	.endef
+
 _ffi_call_SYSV:
         pushl %ebp
         movl  %esp,%ebp
@@ -150,6 +151,7 @@ epilogue:
         # This assumes we are using gas.
         .balign 16
 .globl _ffi_call_STDCALL
+	.def	_ffi_call_STDCALL;	.scl	2;	.type	32;	.endef
 
 _ffi_call_STDCALL:
         pushl %ebp
@@ -259,6 +261,8 @@ sc_epilogue:
 .ffi_call_STDCALL_end:
 
 	.globl _ffi_closure_SYSV
+	.def	_ffi_closure_SYSV;	.scl	2;	.type	32;	.endef
+
 _ffi_closure_SYSV:
 	pushl	%ebp
 	movl	%esp, %ebp
@@ -322,6 +326,7 @@ _ffi_closure_SYSV:
 
 	.balign	16
 	.globl _ffi_closure_raw_SYSV
+	.def	_ffi_closure_raw_SYSV;	.scl	2;	.type	32;	.endef
 _ffi_closure_raw_SYSV:
 	pushl	%ebp
 	movl	%esp, %ebp
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libffi/testsuite/Makefile.in src/gcc-4.3.2/libffi/testsuite/Makefile.in
--- origsrc/gcc-4.3.2/libffi/testsuite/Makefile.in	2007-09-03 19:08:54.000000000 +0100
+++ src/gcc-4.3.2/libffi/testsuite/Makefile.in	2008-12-29 21:22:38.078125000 +0000
@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 subdir = testsuite
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -264,7 +265,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 tags: TAGS
 TAGS:
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libffi/testsuite/lib/libffi-dg.exp src/gcc-4.3.2/libffi/testsuite/lib/libffi-dg.exp
--- origsrc/gcc-4.3.2/libffi/testsuite/lib/libffi-dg.exp	2006-04-10 22:34:19.000000000 +0100
+++ src/gcc-4.3.2/libffi/testsuite/lib/libffi-dg.exp	2008-12-29 21:20:05.812500000 +0000
@@ -177,6 +177,10 @@ proc libffi_target_compile { source dest
 	lappend options "ldflags=$wrap_flags"
     }
 
+    if { [string match "*-*-cygwin*" $target_triplet] } {
+	lappend options "additional_flags=-Wl,--enable-auto-import"
+    }
+
     # TOOL_OPTIONS must come first, so that it doesn't override testcase
     # specific options.
     if [info exists TOOL_OPTIONS] {
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libgfortran/Makefile.am src/gcc-4.3.2/libgfortran/Makefile.am
--- origsrc/gcc-4.3.2/libgfortran/Makefile.am	2008-01-15 21:22:07.000000000 +0000
+++ src/gcc-4.3.2/libgfortran/Makefile.am	2008-12-29 21:20:05.828125000 +0000
@@ -15,7 +15,7 @@ endif
 
 toolexeclib_LTLIBRARIES = libgfortran.la
 libgfortran_la_LINK = $(LINK)
-libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lm $(extra_ldflags_libgfortran) $(version_arg)
+libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lm $(extra_ldflags_libgfortran) $(version_arg) -no-undefined
 
 myexeclib_LTLIBRARIES = libgfortranbegin.la
 myexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libgfortran/Makefile.in src/gcc-4.3.2/libgfortran/Makefile.in
--- origsrc/gcc-4.3.2/libgfortran/Makefile.in	2008-08-27 19:09:37.000000000 +0100
+++ src/gcc-4.3.2/libgfortran/Makefile.in	2008-12-29 21:22:47.859375000 +0000
@@ -37,6 +37,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 
 # dummy sources for libtool
 @onestep_TRUE@am__append_1 = libgfortran_c.c libgfortran_f.f90
@@ -855,7 +856,7 @@ gcc_version := $(shell cat $(top_srcdir)
 @LIBGFOR_USE_SYMVER_TRUE@version_arg = -Wl,--version-script=$(srcdir)/gfortran.map
 toolexeclib_LTLIBRARIES = libgfortran.la
 libgfortran_la_LINK = $(LINK)
-libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lm $(extra_ldflags_libgfortran) $(version_arg)
+libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lm $(extra_ldflags_libgfortran) $(version_arg) -no-undefined
 myexeclib_LTLIBRARIES = libgfortranbegin.la
 myexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)
 libgfortranbegin_la_SOURCES = fmain.c
@@ -5003,7 +5004,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 
 # GNU Make needs to see an explicit $(MAKE) variable in the command it
 # runs to enable its job server during parallel builds.  Hence the
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libgomp/Makefile.am src/gcc-4.3.2/libgomp/Makefile.am
--- origsrc/gcc-4.3.2/libgomp/Makefile.am	2007-11-29 15:34:21.000000000 +0000
+++ src/gcc-4.3.2/libgomp/Makefile.am	2008-12-29 21:20:05.875000000 +0000
@@ -27,7 +27,8 @@ else
 libgomp_version_script =
 endif
 libgomp_version_info = -version-info $(libtool_VERSION)
-libgomp_la_LDFLAGS = $(libgomp_version_info) $(libgomp_version_script)
+libgomp_la_LDFLAGS = $(libgomp_version_info) $(libgomp_version_script) \
+        -no-undefined
 
 libgomp_la_SOURCES = alloc.c barrier.c critical.c env.c error.c iter.c \
 	loop.c ordered.c parallel.c sections.c single.c team.c work.c \
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libgomp/Makefile.in src/gcc-4.3.2/libgomp/Makefile.in
--- origsrc/gcc-4.3.2/libgomp/Makefile.in	2008-01-08 16:14:49.000000000 +0000
+++ src/gcc-4.3.2/libgomp/Makefile.in	2008-12-29 21:22:51.921875000 +0000
@@ -38,6 +38,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 DIST_COMMON = $(am__configure_deps) $(srcdir)/../config.guess \
 	$(srcdir)/../config.sub $(srcdir)/../depcomp \
 	$(srcdir)/../install-sh $(srcdir)/../ltmain.sh \
@@ -217,9 +218,12 @@ USE_FORTRAN_TRUE = @USE_FORTRAN_TRUE@
 VERSION = @VERSION@
 XCFLAGS = @XCFLAGS@
 XLDFLAGS = @XLDFLAGS@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_FC = @ac_ct_FC@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
@@ -235,9 +239,6 @@ build_os = @build_os@
 build_vendor = @build_vendor@
 config_path = @config_path@
 datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
 enable_shared = @enable_shared@
 enable_static = @enable_static@
 exec_prefix = @exec_prefix@
@@ -246,7 +247,6 @@ host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
-htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
@@ -254,17 +254,14 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 libtool_VERSION = @libtool_VERSION@
 link_gomp = @link_gomp@
-localedir = @localedir@
 localstatedir = @localstatedir@
 lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 multi_basedir = @multi_basedir@
 oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
-psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
@@ -289,7 +286,9 @@ nodist_toolexeclib_HEADERS = libgomp.spe
 @LIBGOMP_BUILD_VERSIONED_SHLIB_FALSE@libgomp_version_script = 
 @LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@libgomp_version_script = -Wl,--version-script,$(top_srcdir)/libgomp.map
 libgomp_version_info = -version-info $(libtool_VERSION)
-libgomp_la_LDFLAGS = $(libgomp_version_info) $(libgomp_version_script)
+libgomp_la_LDFLAGS = $(libgomp_version_info) $(libgomp_version_script) \
+        -no-undefined
+
 libgomp_la_SOURCES = alloc.c barrier.c critical.c env.c error.c iter.c \
 	loop.c ordered.c parallel.c sections.c single.c team.c work.c \
 	lock.c mutex.c proc.c sem.c bar.c time.c fortran.c affinity.c
@@ -469,7 +468,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 
 # GNU Make needs to see an explicit $(MAKE) variable in the command it
 # runs to enable its job server during parallel builds.  Hence the
@@ -545,13 +544,10 @@ dist-info: $(INFO_DEPS)
 	    $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
 	  esac; \
 	  if test -f $$base; then d=.; else d=$(srcdir); fi; \
-	  base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
-	  for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
-	    if test -f $$file; then \
-	      relfile=`expr "$$file" : "$$d/\(.*\)"`; \
-	      test -f $(distdir)/$$relfile || \
-		cp -p $$file $(distdir)/$$relfile; \
-	    else :; fi; \
+	  for file in $$d/$$base*; do \
+	    relfile=`expr "$$file" : "$$d/\(.*\)"`; \
+	    test -f $(distdir)/$$relfile || \
+	      cp -p $$file $(distdir)/$$relfile; \
 	  done; \
 	done
 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libgomp/testsuite/Makefile.in src/gcc-4.3.2/libgomp/testsuite/Makefile.in
--- origsrc/gcc-4.3.2/libgomp/testsuite/Makefile.in	2008-08-27 19:09:37.000000000 +0100
+++ src/gcc-4.3.2/libgomp/testsuite/Makefile.in	2008-12-29 21:22:51.609375000 +0000
@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 subdir = testsuite
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -45,10 +46,11 @@ am__aclocal_m4_deps = $(top_srcdir)/../c
 	$(top_srcdir)/../config/lead-dot.m4 \
 	$(top_srcdir)/../config/multi.m4 \
 	$(top_srcdir)/../config/stdint.m4 \
-	$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../ltoptions.m4 \
+	$(top_srcdir)/../config/tls.m4 \
+	$(top_srcdir)/../config/futex.m4 $(top_srcdir)/../ltoptions.m4 \
 	$(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
-	$(top_srcdir)/acinclude.m4 $(top_srcdir)/../libtool.m4 \
-	$(top_srcdir)/configure.ac
+	$(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/../libtool.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
@@ -240,7 +242,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 tags: TAGS
 TAGS:
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libgomp/testsuite/lib/libgomp.exp src/gcc-4.3.2/libgomp/testsuite/lib/libgomp.exp
--- origsrc/gcc-4.3.2/libgomp/testsuite/lib/libgomp.exp	2007-03-23 19:25:19.000000000 +0000
+++ src/gcc-4.3.2/libgomp/testsuite/lib/libgomp.exp	2008-12-29 21:20:05.890625000 +0000
@@ -106,7 +106,7 @@ proc libgomp_init { args } {
 	    if { "$mldir" == "." } {
 	      continue
 	    }
-	    if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.so.*]] >= 1 } {
+	    if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.so.* ${gccdir}/${mldir}/libgcc_s*.dll]] >= 1 } {
 	      append always_ld_library_path ":${gccdir}/${mldir}"
 	    }
 	  }
@@ -158,6 +158,7 @@ proc libgomp_target_compile { source des
     global lang_test_file
     global lang_library_path
     global lang_link_flags
+    global target_triplet
 
     if { [info exists lang_test_file] && [file exists "${blddir}/"] } {
 	lappend options "ldflags=-L${blddir}/${lang_library_path} ${lang_link_flags}"
@@ -167,6 +168,9 @@ proc libgomp_target_compile { source des
 	lappend options "libs=${gluefile}"
 	lappend options "ldflags=${wrap_flags}"
     }
+    if { [string match "*-*-cygwin*" $target_triplet] } {
+	lappend options "additional_flags=-Wl,--enable-auto-import"
+    }
 
     lappend options "additional_flags=[libio_include_flags]"
     lappend options "compiler=$GCC_UNDER_TEST"
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libgomp/testsuite/libgomp.c++/c++.exp src/gcc-4.3.2/libgomp/testsuite/libgomp.c++/c++.exp
--- origsrc/gcc-4.3.2/libgomp/testsuite/libgomp.c++/c++.exp	2007-04-07 16:10:06.000000000 +0100
+++ src/gcc-4.3.2/libgomp/testsuite/libgomp.c++/c++.exp	2008-12-29 21:20:05.890625000 +0000
@@ -1,12 +1,18 @@
 load_lib libgomp-dg.exp
 
 global shlib_ext
+global target_triplet
 
 set shlib_ext [get_shlib_extension]
 set lang_link_flags "-lstdc++"
 set lang_test_file_found 0
 set lang_library_path "../libstdc++-v3/src/.libs"
 
+if { [string match "*-*-cygwin*" $target_triplet] } {
+    set lang_link_flags "-lstdc++ -lsupc++"
+}
+
+
 # Initialize dg.
 dg-init
 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libiberty/pex-win32.c src/gcc-4.3.2/libiberty/pex-win32.c
--- origsrc/gcc-4.3.2/libiberty/pex-win32.c	2007-08-24 08:40:35.000000000 +0100
+++ src/gcc-4.3.2/libiberty/pex-win32.c	2008-12-29 21:20:05.890625000 +0000
@@ -321,6 +321,18 @@ msys_rootify (const char *executable)
 }
 #endif
 
+/* Return the number of arguments in an argv array, not including the null
+   terminating argument. */
+
+static int
+argv_to_argc (char *const *argv)
+{
+  char *const *i = argv;
+  while (*i)
+    i++;
+  return i - argv;
+}
+
 /* Return a Windows command-line from ARGV.  It is the caller's
    responsibility to free the string returned.  */
 
@@ -522,6 +534,9 @@ env_compare (const void *a_ptr, const vo
   return c1 - c2;
 }
 
+/* Execute a Windows executable as a child process.  This will fail if the
+ * target is not actually an executable, such as if it is a shell script. */
+
 static pid_t
 win32_spawn (const char *executable,
 	     BOOL search,
@@ -619,6 +634,9 @@ win32_spawn (const char *executable,
   return (pid_t) -1;
 }
 
+/* Spawn a script.  This simulates the Unix script execution mechanism.
+   This function is called as a fallback if win32_spawn fails. */
+
 static pid_t
 spawn_script (const char *executable, char *const *argv,
               char* const *env,
@@ -630,6 +648,8 @@ spawn_script (const char *executable, ch
   int save_errno = errno;
   int fd = _open (executable, _O_RDONLY);
 
+  /* Try to open script, check header format, extract interpreter path,
+     and spawn script using that interpretter. */
   if (fd >= 0)
     {
       char buf[MAX_PATH + 5];
@@ -642,16 +662,28 @@ spawn_script (const char *executable, ch
 	  eol = strchr (buf, '\n');
 	  if (eol && strncmp (buf, "#!", 2) == 0)
 	    {
+            
+	      /* Header format is OK. */
 	      char *executable1;
-	      const char ** avhere = (const char **) --argv;
+              int new_argc;
+              const char **avhere;
+
+	      /* Extract interpreter path. */
 	      do
 		*eol = '\0';
 	      while (*--eol == '\r' || *eol == ' ' || *eol == '\t');
 	      for (executable1 = buf + 2; *executable1 == ' ' || *executable1 == '\t'; executable1++)
 		continue;
-
 	      backslashify (executable1);
+
+	      /* Duplicate argv, prepending the interpreter path. */
+	      new_argc = argv_to_argc (argv) + 1;
+	      avhere = XNEWVEC (const char *, new_argc + 1);
 	      *avhere = executable1;
+	      memcpy (avhere + 1, argv, new_argc * sizeof(*argv));
+	      argv = (char *const *)avhere;
+
+	      /* Spawn the child. */
 #ifndef USE_MINGW_MSYS
 	      executable = strrchr (executable1, '\\') + 1;
 	      if (!executable)
@@ -686,6 +718,7 @@ spawn_script (const char *executable, ch
 		    }
 		}
 #endif
+	      free (avhere);
 	    }
 	}
     }
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libjava/Makefile.am src/gcc-4.3.2/libjava/Makefile.am
--- origsrc/gcc-4.3.2/libjava/Makefile.am	2008-07-02 22:23:43.000000000 +0100
+++ src/gcc-4.3.2/libjava/Makefile.am	2008-12-29 21:20:05.906250000 +0000
@@ -112,7 +112,7 @@ GCJLINK = $(LIBTOOL) --tag=GCJ --mode=li
 GCJ_FOR_ECJX = @GCJ_FOR_ECJX@
 GCJ_FOR_ECJX_LINK = $(GCJ_FOR_ECJX) -o $@
 LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) \
-          $(LDFLAGS) $(extra_ldflags_libjava) $(extra_ldflags) -o $@
+          $(LDFLAGS) $(extra_ldflags_libjava) $(extra_ldflags) -no-undefined -o $@
 
 GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
 
@@ -281,6 +281,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
 libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec
+libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
 libgcj_tools_la_LINK = $(LIBLINK)
 
 ## libjvm.so
@@ -366,7 +367,7 @@ DISTCLEANFILES = native.dirs
 
 mostlyclean-local:
 ## Use libtool rm to remove each libtool object
-	find . -name '*.lo' -print | xargs $(LIBTOOL) rm -f
+	find . -name '*.lo' -print | xargs $(LIBTOOL) --mode=clean rm -f
 
 distclean-local:
 ## Remove every .d file that was created.
@@ -1119,6 +1120,8 @@ AM_MAKEFLAGS = \
 	"LD=$(LD)" \
 	"LIBCFLAGS=$(LIBCFLAGS)" \
 	"NM=$(NM)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"PICFLAG=$(PICFLAG)" \
 	"RANLIB=$(RANLIB)" \
 	"DESTDIR=$(DESTDIR)" \
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libjava/Makefile.in src/gcc-4.3.2/libjava/Makefile.in
--- origsrc/gcc-4.3.2/libjava/Makefile.in	2008-08-27 19:09:37.000000000 +0100
+++ src/gcc-4.3.2/libjava/Makefile.in	2008-12-29 21:22:58.062500000 +0000
@@ -40,6 +40,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 @TESTSUBDIR_TRUE@am__append_1 = testsuite
 @USE_LIBGCJ_BC_TRUE@am__append_2 = libgcj_bc.la
 @XLIB_AWT_TRUE@am__append_3 = lib-gnu-awt-xlib.la
@@ -153,7 +154,6 @@ am__objects_1 = gnu/gcj/xlib/lib_gnu_awt
 am_lib_gnu_awt_xlib_la_OBJECTS = $(am__objects_1)
 lib_gnu_awt_xlib_la_OBJECTS = $(am_lib_gnu_awt_xlib_la_OBJECTS)
 @XLIB_AWT_TRUE@am_lib_gnu_awt_xlib_la_rpath = -rpath $(toolexeclibdir)
-libgcj_tools_la_LIBADD =
 am_libgcj_tools_la_OBJECTS = classpath/tools/libgcj_tools_la-tools.lo
 libgcj_tools_la_OBJECTS = $(am_libgcj_tools_la_OBJECTS)
 @INTERPRETER_TRUE@am__DEPENDENCIES_1 = gnu/classpath/jdwp.lo \
@@ -673,6 +673,7 @@ NATIVE_TRUE = @NATIVE_TRUE@
 NEEDS_DATA_START_FALSE = @NEEDS_DATA_START_FALSE@
 NEEDS_DATA_START_TRUE = @NEEDS_DATA_START_TRUE@
 NM = nm
+OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -745,6 +746,7 @@ ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_LD = @ac_ct_LD@
+ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
 ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
@@ -854,7 +856,7 @@ GCJLINK = $(LIBTOOL) --tag=GCJ --mode=li
 
 GCJ_FOR_ECJX_LINK = $(GCJ_FOR_ECJX) -o $@
 LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) \
-          $(LDFLAGS) $(extra_ldflags_libjava) $(extra_ldflags) -o $@
+          $(LDFLAGS) $(extra_ldflags_libjava) $(extra_ldflags) -no-undefined -o $@
 
 WARNINGS = -Wextra -Wall
 AM_CXXFLAGS = \
@@ -946,6 +948,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
 
 libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec
+libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
 libgcj_tools_la_LINK = $(LIBLINK)
 libjvm_la_SOURCES = jni-libjvm.cc
 libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec
@@ -8243,6 +8246,8 @@ AM_MAKEFLAGS = \
 	"LD=$(LD)" \
 	"LIBCFLAGS=$(LIBCFLAGS)" \
 	"NM=$(NM)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"PICFLAG=$(PICFLAG)" \
 	"RANLIB=$(RANLIB)" \
 	"DESTDIR=$(DESTDIR)" \
@@ -9587,7 +9592,7 @@ clean-libtool:
 	-rm -rf sun/misc/.libs sun/misc/_libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 install-dbexecDATA: $(dbexec_DATA)
 	@$(NORMAL_INSTALL)
@@ -10137,7 +10142,7 @@ libgcj-tools-$(gcc_version).jar: classpa
 	cp $< $@
 
 mostlyclean-local:
-	find . -name '*.lo' -print | xargs $(LIBTOOL) rm -f
+	find . -name '*.lo' -print | xargs $(LIBTOOL) --mode=clean rm -f
 
 distclean-local:
 	find . -name '*.d' -print | xargs rm -f
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libjava/configure.ac src/gcc-4.3.2/libjava/configure.ac
--- origsrc/gcc-4.3.2/libjava/configure.ac	2008-07-02 22:23:43.000000000 +0100
+++ src/gcc-4.3.2/libjava/configure.ac	2008-12-29 21:20:06.031250000 +0000
@@ -112,6 +112,7 @@ AM_INIT_AUTOMAKE([1.9.0])
 AC_CHECK_TOOL(AS, as)
 AC_CHECK_TOOL(LD, ld)
 AC_CHECK_TOOL(AR, ar)
+AC_CHECK_TOOL(OBJDUMP, objdump)
 AC_CHECK_TOOL(RANLIB, ranlib, :)
 AC_PROG_AWK
 AC_CHECK_PROGS([JAR], [jar fastjar gjar], no)
@@ -808,6 +809,10 @@ arm*linux*eabi)
     LIBSTDCXXSPEC=-lstdc++
     LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -L`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -rpath `${PWDCMD-pwd}`/.libs:`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -lstdc++"
     ;;
+*-*-mingw*|*-*-cygwin)
+    extra_ldflags='-Wl,--enable-auto-import -L$(here)/../../gcc'
+    extra_ldflags_libjava='-lws2_32 -lintl'
+    ;;
 esac
 AC_SUBST(extra_ldflags_libjava)
 AC_SUBST(extra_gij_ldflags)
@@ -1403,7 +1408,7 @@ AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERS
 # Determine where the standard .db file and GNU Classpath JNI
 # libraries are found.
 gcjsubdir=gcj-$gcjversion-$libgcj_soversion
-multi_os_directory=`$CC -print-multi-os-directory`
+multi_os_directory=`$CC -print-multi-os-directory | tr -d '\r'`
 case $multi_os_directory in
   .)
    dbexecdir='$(libdir)/'$gcjsubdir # Avoid /.
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libjava/gcj/Makefile.in src/gcc-4.3.2/libjava/gcj/Makefile.in
--- origsrc/gcc-4.3.2/libjava/gcj/Makefile.in	2008-07-02 22:23:43.000000000 +0100
+++ src/gcc-4.3.2/libjava/gcj/Makefile.in	2008-12-29 21:22:56.390625000 +0000
@@ -37,6 +37,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 subdir = gcj
 DIST_COMMON = $(gcj_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(srcdir)/libgcj-config.h.in \
@@ -196,6 +197,7 @@ NATIVE_TRUE = @NATIVE_TRUE@
 NEEDS_DATA_START_FALSE = @NEEDS_DATA_START_FALSE@
 NEEDS_DATA_START_TRUE = @NEEDS_DATA_START_TRUE@
 NM = @NM@
+OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -268,6 +270,7 @@ ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_LD = @ac_ct_LD@
+ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
 ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
@@ -403,7 +406,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 install-gcjHEADERS: $(gcj_HEADERS)
 	@$(NORMAL_INSTALL)
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libjava/include/Makefile.in src/gcc-4.3.2/libjava/include/Makefile.in
--- origsrc/gcc-4.3.2/libjava/include/Makefile.in	2008-07-02 22:23:43.000000000 +0100
+++ src/gcc-4.3.2/libjava/include/Makefile.in	2008-12-29 21:22:56.546875000 +0000
@@ -37,6 +37,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 subdir = include
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(srcdir)/config.h.in $(tool_include__HEADERS)
@@ -195,6 +196,7 @@ NATIVE_TRUE = @NATIVE_TRUE@
 NEEDS_DATA_START_FALSE = @NEEDS_DATA_START_FALSE@
 NEEDS_DATA_START_TRUE = @NEEDS_DATA_START_TRUE@
 NM = @NM@
+OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -267,6 +269,7 @@ ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_LD = @ac_ct_LD@
+ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
 ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
@@ -401,7 +404,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 install-tool_include_HEADERS: $(tool_include__HEADERS)
 	@$(NORMAL_INSTALL)
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libjava/libltdl/ltdl.c src/gcc-4.3.2/libjava/libltdl/ltdl.c
--- origsrc/gcc-4.3.2/libjava/libltdl/ltdl.c	2006-03-28 20:02:25.000000000 +0100
+++ src/gcc-4.3.2/libjava/libltdl/ltdl.c	2008-12-29 21:20:06.046875000 +0000
@@ -142,7 +142,7 @@ Foundation, Inc., 51 Franklin Street, Fi
 /* --- WINDOWS SUPPORT --- */
 
 
-#ifdef DLL_EXPORT
+#ifdef LIBLTDL_DLL_EXPORT
 #  define LT_GLOBAL_DATA	__declspec(dllexport)
 #else
 #  define LT_GLOBAL_DATA
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libjava/libltdl/ltdl.h src/gcc-4.3.2/libjava/libltdl/ltdl.h
--- origsrc/gcc-4.3.2/libjava/libltdl/ltdl.h	2006-03-28 20:02:25.000000000 +0100
+++ src/gcc-4.3.2/libjava/libltdl/ltdl.h	2008-12-29 21:20:06.046875000 +0000
@@ -128,7 +128,7 @@ LT_BEGIN_C_DECLS
    ridiculous implementation of data symbol exporting. */
 #ifndef LT_SCOPE
 #  ifdef __WINDOWS__
-#    ifdef DLL_EXPORT		/* defined by libtool (if required) */
+#    ifdef LIBLTDL_DLL_EXPORT		/* defined by libtool (if required) */
 #      define LT_SCOPE	__declspec(dllexport)
 #    endif
 #    ifdef LIBLTDL_DLL_IMPORT	/* define if linking with this dll */
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libjava/sysdep/i386/backtrace.h src/gcc-4.3.2/libjava/sysdep/i386/backtrace.h
--- origsrc/gcc-4.3.2/libjava/sysdep/i386/backtrace.h	2006-08-19 16:35:11.000000000 +0100
+++ src/gcc-4.3.2/libjava/sysdep/i386/backtrace.h	2008-12-29 21:20:06.062500000 +0000
@@ -13,7 +13,15 @@ details.  */
 
 #include <java-stack.h>
 
-extern int main (int, char **);
+#ifdef __CYGWIN__
+/* To allow this to link as a DLL.  */
+#define MAIN_FUNC dll_crt0__FP11per_process
+extern "C" int MAIN_FUNC () __declspec(dllimport);
+#else /* !__CYGWIN__ */
+#define MAIN_FUNC main
+extern int MAIN_FUNC (int, char **);
+#endif /* ?__CYGWIN__ */
+
 
 /* The context used to keep track of our position while unwinding through
    the call stack.  */
@@ -104,7 +112,7 @@ fallback_backtrace (_Unwind_Trace_Fn tra
                             const char **, bool))_Jv_RunMain;
       if (ctx.meth_addr == (_Jv_uintptr_t)jv_runmain
           || ctx.meth_addr == (_Jv_uintptr_t)_Jv_ThreadStart
-          || (ctx.meth_addr - (_Jv_uintptr_t)main) < 16)
+          || (ctx.meth_addr - (_Jv_uintptr_t)MAIN_FUNC) < 16)
         break;
     }
 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libjava/testsuite/Makefile.in src/gcc-4.3.2/libjava/testsuite/Makefile.in
--- origsrc/gcc-4.3.2/libjava/testsuite/Makefile.in	2008-07-02 22:23:43.000000000 +0100
+++ src/gcc-4.3.2/libjava/testsuite/Makefile.in	2008-12-29 21:22:56.687500000 +0000
@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 subdir = testsuite
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -184,6 +185,7 @@ NATIVE_TRUE = @NATIVE_TRUE@
 NEEDS_DATA_START_FALSE = @NEEDS_DATA_START_FALSE@
 NEEDS_DATA_START_TRUE = @NEEDS_DATA_START_TRUE@
 NM = @NM@
+OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -256,6 +258,7 @@ ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_LD = @ac_ct_LD@
+ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
 ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
@@ -380,7 +383,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 tags: TAGS
 TAGS:
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libjava/testsuite/lib/libjava.exp src/gcc-4.3.2/libjava/testsuite/lib/libjava.exp
--- origsrc/gcc-4.3.2/libjava/testsuite/lib/libjava.exp	2008-03-04 13:32:15.000000000 +0000
+++ src/gcc-4.3.2/libjava/testsuite/lib/libjava.exp	2008-12-29 21:20:06.078125000 +0000
@@ -425,6 +425,9 @@ proc libjava_arguments {{mode compile}} 
 	if {! [istarget "*-*-cygwin*"] && ! [istarget "*-*-mingw*"] } {
 	    lappend args "additional_flags=-no-install"
 	}
+	if { [istarget "*-*-cygwin*"] } {
+	    lappend args "additional_flags=-Wl,--enable-auto-import"
+	}
 	if { [istarget "*-*-darwin*"] } {
 	    lappend args "additional_flags=-bind_at_load"
 	    lappend args "additional_flags=-multiply_defined suppress"
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libmudflap/Makefile.am src/gcc-4.3.2/libmudflap/Makefile.am
--- origsrc/gcc-4.3.2/libmudflap/Makefile.am	2007-07-27 01:16:35.000000000 +0100
+++ src/gcc-4.3.2/libmudflap/Makefile.am	2008-12-29 21:20:06.078125000 +0000
@@ -88,6 +88,8 @@ AM_MAKEFLAGS = \
 	"LD=$(LD)" \
 	"LIBCFLAGS=$(LIBCFLAGS)" \
 	"NM=$(NM)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"PICFLAG=$(PICFLAG)" \
 	"RANLIB=$(RANLIB)" \
 	"DESTDIR=$(DESTDIR)"
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libmudflap/Makefile.in src/gcc-4.3.2/libmudflap/Makefile.in
--- origsrc/gcc-4.3.2/libmudflap/Makefile.in	2007-07-27 01:16:35.000000000 +0100
+++ src/gcc-4.3.2/libmudflap/Makefile.in	2008-12-29 21:20:06.078125000 +0000
@@ -38,6 +38,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 DIST_COMMON = $(am__configure_deps) $(nobase_libsubinclude_HEADERS) \
 	$(srcdir)/../compile $(srcdir)/../config.guess \
 	$(srcdir)/../config.sub $(srcdir)/../depcomp \
@@ -152,6 +153,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LD = @LD@
+LDFLAGS = @LDFLAGS@
 LIBMUDFLAPTH_FALSE = @LIBMUDFLAPTH_FALSE@
 LIBMUDFLAPTH_TRUE = @LIBMUDFLAPTH_TRUE@
 LIBOBJS = @LIBOBJS@
@@ -181,12 +183,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-ac_ct_NM = @ac_ct_NM@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
@@ -202,6 +200,9 @@ build_libmudflapth = @build_libmudflapth
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 enable_shared = @enable_shared@
 enable_static = @enable_static@
 exec_prefix = @exec_prefix@
@@ -210,19 +211,23 @@ host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 multi_basedir = @multi_basedir@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
@@ -307,6 +312,8 @@ AM_MAKEFLAGS = \
 	"LD=$(LD)" \
 	"LIBCFLAGS=$(LIBCFLAGS)" \
 	"NM=$(NM)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"PICFLAG=$(PICFLAG)" \
 	"RANLIB=$(RANLIB)" \
 	"DESTDIR=$(DESTDIR)"
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libmudflap/testsuite/Makefile.in src/gcc-4.3.2/libmudflap/testsuite/Makefile.in
--- origsrc/gcc-4.3.2/libmudflap/testsuite/Makefile.in	2007-05-24 17:37:27.000000000 +0100
+++ src/gcc-4.3.2/libmudflap/testsuite/Makefile.in	2008-12-29 21:20:06.093750000 +0000
@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 subdir = testsuite
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(srcdir)/mfconfig.exp.in
@@ -47,8 +48,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../c
 	$(top_srcdir)/../config/multi.m4 \
 	$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../ltoptions.m4 \
 	$(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
-	$(top_srcdir)/acinclude.m4 $(top_srcdir)/../libtool.m4 \
-	$(top_srcdir)/configure.ac
+	$(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/../libtool.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
@@ -89,6 +90,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LD = @LD@
+LDFLAGS = @LDFLAGS@
 LIBMUDFLAPTH_FALSE = @LIBMUDFLAPTH_FALSE@
 LIBMUDFLAPTH_TRUE = @LIBMUDFLAPTH_TRUE@
 LIBOBJS = @LIBOBJS@
@@ -118,12 +120,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-ac_ct_NM = @ac_ct_NM@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
@@ -139,6 +137,9 @@ build_libmudflapth = @build_libmudflapth
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 enable_shared = @enable_shared@
 enable_static = @enable_static@
 exec_prefix = @exec_prefix@
@@ -147,19 +148,23 @@ host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 multi_basedir = @multi_basedir@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libobjc/Makefile.in src/gcc-4.3.2/libobjc/Makefile.in
--- origsrc/gcc-4.3.2/libobjc/Makefile.in	2007-06-02 02:35:59.000000000 +0100
+++ src/gcc-4.3.2/libobjc/Makefile.in	2008-12-29 21:20:06.093750000 +0000
@@ -277,12 +277,12 @@ install-pdf:
 libobjc$(libsuffix).la: $(OBJS)
 	$(LIBTOOL_LINK) $(CC) -o $@ $(OBJS) \
 		-rpath $(toolexeclibdir) \
-		-version-info $(LIBOBJC_VERSION) $(extra_ldflags_libobjc)
+		-version-info $(LIBOBJC_VERSION) $(extra_ldflags_libobjc) -no-undefined
 
 libobjc_gc$(libsuffix).la: $(OBJS_GC)
 	$(LIBTOOL_LINK) $(CC) -o $@ $(OBJS_GC) \
 		-rpath $(toolexeclibdir) \
-		-version-info $(LIBOBJC_GC_VERSION) $(extra_ldflags_libobjc)
+		-version-info $(LIBOBJC_GC_VERSION) $(extra_ldflags_libobjc) -no-undefined
 
 #
 # FIXME -- The following part does not fit in the libtool context. 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libssp/Makefile.am src/gcc-4.3.2/libssp/Makefile.am
--- origsrc/gcc-4.3.2/libssp/Makefile.am	2007-03-01 23:50:30.000000000 +0000
+++ src/gcc-4.3.2/libssp/Makefile.am	2008-12-29 21:20:06.093750000 +0000
@@ -35,7 +35,7 @@ libssp_la_SOURCES = \
 libssp_la_LIBADD = 
 libssp_la_DEPENDENCIES = $(version_dep) $(libssp_la_LIBADD)
 libssp_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
-		    $(version_arg)
+		    $(version_arg) -no-undefined
 
 libssp_nonshared_la_SOURCES = \
 	ssp-local.c
@@ -84,6 +84,8 @@ AM_MAKEFLAGS = \
 	"LD=$(LD)" \
 	"LIBCFLAGS=$(LIBCFLAGS)" \
 	"NM=$(NM)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"PICFLAG=$(PICFLAG)" \
 	"RANLIB=$(RANLIB)" \
 	"DESTDIR=$(DESTDIR)"
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libssp/Makefile.in src/gcc-4.3.2/libssp/Makefile.in
--- origsrc/gcc-4.3.2/libssp/Makefile.in	2007-05-24 17:37:27.000000000 +0100
+++ src/gcc-4.3.2/libssp/Makefile.in	2008-12-29 21:23:01.265625000 +0000
@@ -38,6 +38,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 DIST_COMMON = $(am__configure_deps) $(nobase_libsubinclude_HEADERS) \
 	$(srcdir)/../compile $(srcdir)/../config.guess \
 	$(srcdir)/../config.sub $(srcdir)/../depcomp \
@@ -245,7 +246,7 @@ libssp_la_SOURCES = \
 libssp_la_LIBADD = 
 libssp_la_DEPENDENCIES = $(version_dep) $(libssp_la_LIBADD)
 libssp_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
-		    $(version_arg)
+		    $(version_arg) -no-undefined
 
 libssp_nonshared_la_SOURCES = \
 	ssp-local.c
@@ -294,6 +295,8 @@ AM_MAKEFLAGS = \
 	"LD=$(LD)" \
 	"LIBCFLAGS=$(LIBCFLAGS)" \
 	"NM=$(NM)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"PICFLAG=$(PICFLAG)" \
 	"RANLIB=$(RANLIB)" \
 	"DESTDIR=$(DESTDIR)"
@@ -446,7 +449,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 
 # GNU Make needs to see an explicit $(MAKE) variable in the command it
 # runs to enable its job server during parallel builds.  Hence the
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/Makefile.am src/gcc-4.3.2/libstdc++-v3/Makefile.am
--- origsrc/gcc-4.3.2/libstdc++-v3/Makefile.am	2008-04-29 16:32:26.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/Makefile.am	2008-12-29 21:20:06.109375000 +0000
@@ -84,6 +84,8 @@ AM_MAKEFLAGS = \
 	"NM=$(NM)" \
 	"NM_FOR_BUILD=$(NM_FOR_BUILD)" \
 	"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"DESTDIR=$(DESTDIR)" \
 	"WERROR=$(WERROR)"
 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/Makefile.in src/gcc-4.3.2/libstdc++-v3/Makefile.in
--- origsrc/gcc-4.3.2/libstdc++-v3/Makefile.in	2008-04-29 16:32:26.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/Makefile.in	2008-12-29 21:23:14.343750000 +0000
@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/../config.guess \
 	$(srcdir)/../config.sub $(srcdir)/../install-sh \
 	$(srcdir)/../ltmain.sh $(srcdir)/../missing \
@@ -350,6 +351,8 @@ AM_MAKEFLAGS = \
 	"NM=$(NM)" \
 	"NM_FOR_BUILD=$(NM_FOR_BUILD)" \
 	"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"DESTDIR=$(DESTDIR)" \
 	"WERROR=$(WERROR)"
 
@@ -420,7 +423,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 
 # GNU Make needs to see an explicit $(MAKE) variable in the command it
 # runs to enable its job server during parallel builds.  Hence the
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/acinclude.m4 src/gcc-4.3.2/libstdc++-v3/acinclude.m4
--- origsrc/gcc-4.3.2/libstdc++-v3/acinclude.m4	2008-04-25 17:52:57.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/acinclude.m4	2008-12-29 21:20:06.125000000 +0000
@@ -2234,7 +2234,8 @@ AC_REQUIRE([GLIBCXX_CHECK_LINKER_FEATURE
 
 # Turn a 'yes' into a suitable default.
 if test x$enable_symvers = xyes ; then
-  if test $enable_shared = no || test "x$LD" = x || test x$gcc_no_link = xyes; then
+  if test $enable_shared = no || test "x$LD" = x || test x$gcc_no_link = xyes \
+      || test x$target_os = xcygwin; then
     enable_symvers=no
   else
     if test $with_gnu_ld = yes ; then
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/config/os/mingw32/os_defines.h src/gcc-4.3.2/libstdc++-v3/config/os/mingw32/os_defines.h
--- origsrc/gcc-4.3.2/libstdc++-v3/config/os/mingw32/os_defines.h	2007-05-07 22:38:16.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/config/os/mingw32/os_defines.h	2008-12-29 21:20:06.125000000 +0000
@@ -52,4 +52,10 @@
 // See libstdc++/20806.
 #define _GLIBCXX_HAVE_DOS_BASED_FILESYSTEM 1
 
+#ifdef _DLL
+#define _GLIBCXX_IMPORT __attribute__((dllimport))
+#else
+#define _GLIBCXX_IMPORT
+#endif
+
 #endif
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/config/os/newlib/os_defines.h src/gcc-4.3.2/libstdc++-v3/config/os/newlib/os_defines.h
--- origsrc/gcc-4.3.2/libstdc++-v3/config/os/newlib/os_defines.h	2006-12-05 23:24:07.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/config/os/newlib/os_defines.h	2008-12-29 21:21:02.078125000 +0000
@@ -40,9 +40,18 @@
 
 #ifdef __CYGWIN__
 #define _GLIBCXX_GTHREAD_USE_WEAK 0
+#define __GXX_MERGED_TYPEINFO_NAMES 0
+#define __GXX_TYPEINFO_EQUALITY_INLINE 0
 
 // See libstdc++/20806.
 #define _GLIBCXX_HAVE_DOS_BASED_FILESYSTEM 1
+
+#ifdef _DLL
+#define _GLIBCXX_IMPORT __attribute__((dllimport))
+#else
+#define _GLIBCXX_IMPORT
+#endif
+
 #endif
 
 #endif
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/configure.host src/gcc-4.3.2/libstdc++-v3/configure.host
--- origsrc/gcc-4.3.2/libstdc++-v3/configure.host	2007-12-15 21:33:45.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/configure.host	2008-12-29 21:20:06.140625000 +0000
@@ -208,6 +208,7 @@ case "${host_os}" in
     ;;
   cygwin*)
     os_include_dir="os/newlib"
+    OPT_LDFLAGS="-Wl,--exclude-modules-for-implib=tinfo.o:tinfo2.o"
     ;;
   darwin | darwin[1-7] | darwin[1-7].*)
     # On Darwin, performance is improved if libstdc++ is single-module.
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/doc/Makefile.in src/gcc-4.3.2/libstdc++-v3/doc/Makefile.in
--- origsrc/gcc-4.3.2/libstdc++-v3/doc/Makefile.in	2008-04-29 16:32:26.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/doc/Makefile.in	2008-12-29 21:23:13.187500000 +0000
@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(top_srcdir)/fragment.am
 subdir = doc
@@ -426,7 +427,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 tags: TAGS
 TAGS:
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/Makefile.in src/gcc-4.3.2/libstdc++-v3/include/Makefile.in
--- origsrc/gcc-4.3.2/libstdc++-v3/include/Makefile.in	2008-06-15 13:50:59.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/include/Makefile.in	2008-12-29 21:23:13.375000000 +0000
@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(top_srcdir)/fragment.am
 subdir = include
@@ -1125,7 +1126,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 tags: TAGS
 TAGS:
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/backward/strstream src/gcc-4.3.2/libstdc++-v3/include/backward/strstream
--- origsrc/gcc-4.3.2/libstdc++-v3/include/backward/strstream	2007-10-29 21:13:23.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/backward/strstream	2008-12-29 21:20:06.156250000 +0000
@@ -59,7 +59,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 
   // Class strstreambuf, a streambuf class that manages an array of char.
   // Note that this class is not a template.
-  class strstreambuf : public basic_streambuf<char, char_traits<char> >
+  class _GLIBCXX_IMPORT strstreambuf : public basic_streambuf<char, char_traits<char> >
   {
   public:
     // Types.
@@ -121,7 +121,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   };
 
   // Class istrstream, an istream that manages a strstreambuf.
-  class istrstream : public basic_istream<char>
+  class _GLIBCXX_IMPORT istrstream : public basic_istream<char>
   {
   public:
     explicit istrstream(char*);
@@ -138,7 +138,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   };
 
   // Class ostrstream
-  class ostrstream : public basic_ostream<char>
+  class _GLIBCXX_IMPORT ostrstream : public basic_ostream<char>
   {
   public:
     ostrstream();
@@ -155,7 +155,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   };
 
   // Class strstream
-  class strstream : public basic_iostream<char>
+  class _GLIBCXX_IMPORT strstream : public basic_iostream<char>
   {
   public:
     typedef char                        char_type;
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/basic_ios.tcc src/gcc-4.3.2/libstdc++-v3/include/bits/basic_ios.tcc
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/basic_ios.tcc	2007-04-29 17:06:09.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/basic_ios.tcc	2008-12-29 21:20:06.156250000 +0000
@@ -180,10 +180,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   // 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>;
 
 #ifdef _GLIBCXX_USE_WCHAR_T
-  extern template class basic_ios<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_ios<wchar_t>;
 #endif
 #endif
 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/basic_string.h src/gcc-4.3.2/libstdc++-v3/include/bits/basic_string.h
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/basic_string.h	2008-01-18 08:16:51.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/basic_string.h	2008-12-29 21:20:06.171875000 +0000
@@ -228,12 +228,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 	void
 	_M_dispose(const _Alloc& __a)
 	{
-#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
-	  if (__builtin_expect(this != &_S_empty_rep(), false))
-#endif
-	    if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount,
-						       -1) <= 0)
-	      _M_destroy(__a);
+	  if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount, -1) <= 0)
+	    _M_destroy(__a);
 	}  // XXX MT
 
 	void
@@ -242,10 +238,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 	_CharT*
 	_M_refcopy() throw()
 	{
-#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
-	  if (__builtin_expect(this != &_S_empty_rep(), false))
-#endif
-            __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1);
+	  __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1);
 	  return _M_refdata();
 	}  // XXX MT
 
@@ -2065,11 +2058,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   template<typename _CharT, typename _Traits, typename _Alloc>
     inline basic_string<_CharT, _Traits, _Alloc>::
     basic_string()
-#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
-    : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
-#else
-    : _M_dataplus(_S_construct(size_type(), _CharT(), _Alloc()), _Alloc()) { }
-#endif
+    : _M_dataplus(_S_empty_rep()._M_refcopy(), _Alloc()) { }
 
   // operator+
   /**
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/basic_string.tcc src/gcc-4.3.2/libstdc++-v3/include/bits/basic_string.tcc
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/basic_string.tcc	2007-05-08 07:50:32.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/basic_string.tcc	2008-12-29 21:20:06.171875000 +0000
@@ -83,10 +83,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
 		   input_iterator_tag)
       {
-#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
 	if (__beg == __end && __a == _Alloc())
-	  return _S_empty_rep()._M_refdata();
-#endif
+	  return _S_empty_rep()._M_refcopy();
+
 	// Avoid reallocation for common case.
 	_CharT __buf[128];
 	size_type __len = 0;
@@ -129,10 +128,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
 		   forward_iterator_tag)
       {
-#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
 	if (__beg == __end && __a == _Alloc())
-	  return _S_empty_rep()._M_refdata();
-#endif
+	  return _S_empty_rep()._M_refcopy();
+
 	// NB: Not required, but considered best practice.
 	if (__builtin_expect(__gnu_cxx::__is_null_pointer(__beg)
 			     && __beg != __end, 0))
@@ -158,10 +156,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     basic_string<_CharT, _Traits, _Alloc>::
     _S_construct(size_type __n, _CharT __c, const _Alloc& __a)
     {
-#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
       if (__n == 0 && __a == _Alloc())
-	return _S_empty_rep()._M_refdata();
-#endif
+	return _S_empty_rep()._M_refcopy();
       // Check for out_of_range and length_error exceptions.
       _Rep* __r = _Rep::_S_create(__n, size_type(0), __a);
       if (__n)
@@ -429,10 +425,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     basic_string<_CharT, _Traits, _Alloc>::
     _M_leak_hard()
     {
-#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
-      if (_M_rep() == &_S_empty_rep())
-	return;
-#endif
       if (_M_rep()->_M_is_shared())
 	_M_mutate(0, 0, 0);
       _M_rep()->_M_set_leaked();
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/c++config src/gcc-4.3.2/libstdc++-v3/include/bits/c++config
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/c++config	2008-01-31 18:44:55.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/c++config	2008-12-29 21:20:06.187500000 +0000
@@ -295,4 +295,8 @@ _GLIBCXX_END_NAMESPACE
 #undef min
 #undef max
 
+#ifndef _GLIBCXX_IMPORT
+#define _GLIBCXX_IMPORT
+#endif
+
 // End of prewritten config; the discovered settings follow.
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/codecvt.h src/gcc-4.3.2/libstdc++-v3/include/bits/codecvt.h
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/codecvt.h	2008-03-26 23:21:44.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/codecvt.h	2008-12-29 21:20:06.187500000 +0000
@@ -474,7 +474,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   // 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>&
@@ -485,7 +485,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     has_facet<codecvt<char, char, mbstate_t> >(const locale&);
 
 #ifdef _GLIBCXX_USE_WCHAR_T
-  extern template class codecvt_byname<wchar_t, char, mbstate_t>;
+  extern template class _GLIBCXX_IMPORT codecvt_byname<wchar_t, char, mbstate_t>;
 
   extern template
     const codecvt<wchar_t, char, mbstate_t>&
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/fstream.tcc src/gcc-4.3.2/libstdc++-v3/include/bits/fstream.tcc
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/fstream.tcc	2007-10-01 21:49:39.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/fstream.tcc	2008-12-29 21:20:06.187500000 +0000
@@ -911,16 +911,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   // 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>;
-  extern template class basic_ofstream<char>;
-  extern template class basic_fstream<char>;
+  extern template class _GLIBCXX_IMPORT basic_filebuf<char>;
+  extern template class _GLIBCXX_IMPORT basic_ifstream<char>;
+  extern template class _GLIBCXX_IMPORT basic_ofstream<char>;
+  extern template class _GLIBCXX_IMPORT basic_fstream<char>;
 
 #ifdef _GLIBCXX_USE_WCHAR_T
-  extern template class basic_filebuf<wchar_t>;
-  extern template class basic_ifstream<wchar_t>;
-  extern template class basic_ofstream<wchar_t>;
-  extern template class basic_fstream<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_filebuf<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_ifstream<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_ofstream<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_fstream<wchar_t>;
 #endif
 #endif
 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/ios_base.h src/gcc-4.3.2/libstdc++-v3/include/bits/ios_base.h
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/ios_base.h	2008-01-31 18:44:55.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/ios_base.h	2008-12-29 21:20:06.203125000 +0000
@@ -200,13 +200,13 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  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).
   */
-  class ios_base
+  class _GLIBCXX_IMPORT ios_base
   {
   public:
 
     // 27.4.2.1.1  Class ios_base::failure
     /// These are thrown to indicate problems.  Doc me.
-    class failure : public exception
+    class _GLIBCXX_IMPORT failure : public exception
     {
     public:
       // _GLIBCXX_RESOLVE_LIB_DEFECTS
@@ -527,7 +527,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     // Used to initialize standard streams. In theory, g++ could use
     // -finit-priority to order this stuff correctly without going
     // through these machinations.
-    class Init
+    class _GLIBCXX_IMPORT Init
     {
       friend class ios_base;
     public:
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/istream.tcc src/gcc-4.3.2/libstdc++-v3/include/bits/istream.tcc
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/istream.tcc	2007-11-15 22:59:12.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/istream.tcc	2008-12-29 21:20:06.203125000 +0000
@@ -973,7 +973,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   // 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*);
@@ -996,10 +996,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   extern template istream& istream::_M_extract(long double&);
   extern template istream& istream::_M_extract(void*&);
 
-  extern template class basic_iostream<char>;
+  extern template class _GLIBCXX_IMPORT basic_iostream<char>;
 
 #ifdef _GLIBCXX_USE_WCHAR_T
-  extern template class basic_istream<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_istream<wchar_t>;
   extern template wistream& ws(wistream&);
   extern template wistream& operator>>(wistream&, wchar_t&);
   extern template wistream& operator>>(wistream&, wchar_t*);
@@ -1018,7 +1018,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   extern template wistream& wistream::_M_extract(long double&);
   extern template wistream& wistream::_M_extract(void*&);
 
-  extern template class basic_iostream<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_iostream<wchar_t>;
 #endif
 #endif
 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/locale_classes.h src/gcc-4.3.2/libstdc++-v3/include/bits/locale_classes.h
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/locale_classes.h	2008-03-26 23:21:44.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/locale_classes.h	2008-12-29 21:20:06.203125000 +0000
@@ -63,7 +63,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  This library supports efficient construction and copying of locales
    *  through a reference counting implementation of the locale class.
   */
-  class locale
+  class _GLIBCXX_IMPORT locale
   {
   public:
     // Types:
@@ -71,9 +71,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     typedef int	category;
 
     // Forward decls and friends:
-    class facet;
-    class id;
-    class _Impl;
+    class _GLIBCXX_IMPORT facet;
+    class _GLIBCXX_IMPORT id;
+    class _GLIBCXX_IMPORT _Impl;
 
     friend class facet;
     friend class _Impl;
@@ -337,7 +337,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *
    *  Facets may not be copied or assigned.
   */
-  class locale::facet
+  class _GLIBCXX_IMPORT locale::facet
   {
   private:
     friend class locale;
@@ -428,7 +428,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  cannot be used in a locale.  The locale::id ensures that each class
    *  type gets a unique identifier.
   */
-  class locale::id
+  class _GLIBCXX_IMPORT locale::id
   {
   private:
     friend class locale;
@@ -467,7 +467,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 
 
   // Implementation object for locale.
-  class locale::_Impl
+  class _GLIBCXX_IMPORT locale::_Impl
   {
   public:
     // Friends.
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/locale_classes.tcc src/gcc-4.3.2/libstdc++-v3/include/bits/locale_classes.tcc
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/locale_classes.tcc	2008-01-07 11:11:02.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/locale_classes.tcc	2008-12-29 21:20:06.218750000 +0000
@@ -246,8 +246,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   // 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>;
+  extern template class _GLIBCXX_IMPORT collate<char>;
+  extern template class _GLIBCXX_IMPORT collate_byname<char>;
 
   extern template
     const collate<char>&
@@ -258,8 +258,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     has_facet<collate<char> >(const locale&);
 
 #ifdef _GLIBCXX_USE_WCHAR_T
-  extern template class collate<wchar_t>;
-  extern template class collate_byname<wchar_t>;
+  extern template class _GLIBCXX_IMPORT collate<wchar_t>;
+  extern template class _GLIBCXX_IMPORT collate_byname<wchar_t>;
 
   extern template
     const collate<wchar_t>&
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/locale_facets.h src/gcc-4.3.2/libstdc++-v3/include/bits/locale_facets.h
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/locale_facets.h	2008-03-26 23:21:44.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/locale_facets.h	2008-12-29 21:20:06.218750000 +0000
@@ -677,7 +677,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  optimizations as well.
   */
   template<>
-    class ctype<char> : public locale::facet, public ctype_base
+    class _GLIBCXX_IMPORT ctype<char> : public locale::facet, public ctype_base
     {
     public:
       // Types:
@@ -1217,7 +1217,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  __ctype_abstract_base<wchar_t>.
   */
   template<>
-    class ctype<wchar_t> : public __ctype_abstract_base<wchar_t>
+    class _GLIBCXX_IMPORT ctype<wchar_t> : public __ctype_abstract_base<wchar_t>
     {
     public:
       // Types:
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/locale_facets.tcc src/gcc-4.3.2/libstdc++-v3/include/bits/locale_facets.tcc
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/locale_facets.tcc	2007-11-27 01:59:41.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/locale_facets.tcc	2008-12-29 21:20:06.234375000 +0000
@@ -1277,11 +1277,11 @@ _GLIBCXX_END_LDBL_NAMESPACE
   // 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 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 ctype_byname<char>;
 
   extern template
     const numpunct<char>&
@@ -1312,11 +1312,11 @@ _GLIBCXX_END_LDBL_NAMESPACE
     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 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 ctype_byname<wchar_t>;
 
   extern template
     const numpunct<wchar_t>&
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/locale_facets_nonio.tcc src/gcc-4.3.2/libstdc++-v3/include/bits/locale_facets_nonio.tcc
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/locale_facets_nonio.tcc	2008-01-31 18:44:55.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/locale_facets_nonio.tcc	2008-12-29 21:20:06.234375000 +0000
@@ -1175,19 +1175,19 @@ _GLIBCXX_END_LDBL_NAMESPACE
   // 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 __timepunct<char>;
-  extern template class time_put<char>;
-  extern template class time_put_byname<char>;
-  extern template class time_get<char>;
-  extern template class time_get_byname<char>;
-  extern template class messages<char>;
-  extern template class messages_byname<char>;
+  extern template class _GLIBCXX_IMPORT moneypunct<char, false>;
+  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 __timepunct<char>;
+  extern template class _GLIBCXX_IMPORT time_put<char>;
+  extern template class _GLIBCXX_IMPORT time_put_byname<char>;
+  extern template class _GLIBCXX_IMPORT time_get<char>;
+  extern template class _GLIBCXX_IMPORT time_get_byname<char>;
+  extern template class _GLIBCXX_IMPORT messages<char>;
+  extern template class _GLIBCXX_IMPORT messages_byname<char>;
 
   extern template
     const moneypunct<char, true>&
@@ -1250,19 +1250,19 @@ _GLIBCXX_END_LDBL_NAMESPACE
     has_facet<messages<char> >(const locale&);
 
 #ifdef _GLIBCXX_USE_WCHAR_T
-  extern template class moneypunct<wchar_t, false>;
-  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 __timepunct<wchar_t>;
-  extern template class time_put<wchar_t>;
-  extern template class time_put_byname<wchar_t>;
-  extern template class time_get<wchar_t>;
-  extern template class time_get_byname<wchar_t>;
-  extern template class messages<wchar_t>;
-  extern template class messages_byname<wchar_t>;
+  extern template class _GLIBCXX_IMPORT moneypunct<wchar_t, false>;
+  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 __timepunct<wchar_t>;
+  extern template class _GLIBCXX_IMPORT time_put<wchar_t>;
+  extern template class _GLIBCXX_IMPORT time_put_byname<wchar_t>;
+  extern template class _GLIBCXX_IMPORT time_get<wchar_t>;
+  extern template class _GLIBCXX_IMPORT time_get_byname<wchar_t>;
+  extern template class _GLIBCXX_IMPORT messages<wchar_t>;
+  extern template class _GLIBCXX_IMPORT messages_byname<wchar_t>;
 
   extern template
     const moneypunct<wchar_t, true>&
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/ostream.tcc src/gcc-4.3.2/libstdc++-v3/include/bits/ostream.tcc
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/ostream.tcc	2007-05-08 07:50:32.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/ostream.tcc	2008-12-29 21:20:06.234375000 +0000
@@ -362,7 +362,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   // 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&);
@@ -385,7 +385,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   extern template ostream& ostream::_M_insert(const void*);
 
 #ifdef _GLIBCXX_USE_WCHAR_T
-  extern template class basic_ostream<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_ostream<wchar_t>;
   extern template wostream& endl(wostream&);
   extern template wostream& ends(wostream&);
   extern template wostream& flush(wostream&);
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/sstream.tcc src/gcc-4.3.2/libstdc++-v3/include/bits/sstream.tcc
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/sstream.tcc	2008-01-31 18:44:55.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/sstream.tcc	2008-12-29 21:20:06.250000000 +0000
@@ -260,16 +260,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   // 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>;
-  extern template class basic_ostringstream<char>;
-  extern template class basic_stringstream<char>;
+  extern template class _GLIBCXX_IMPORT basic_stringbuf<char>;
+  extern template class _GLIBCXX_IMPORT basic_istringstream<char>;
+  extern template class _GLIBCXX_IMPORT basic_ostringstream<char>;
+  extern template class _GLIBCXX_IMPORT basic_stringstream<char>;
 
 #ifdef _GLIBCXX_USE_WCHAR_T
-  extern template class basic_stringbuf<wchar_t>;
-  extern template class basic_istringstream<wchar_t>;
-  extern template class basic_ostringstream<wchar_t>;
-  extern template class basic_stringstream<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_stringbuf<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_istringstream<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_ostringstream<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_stringstream<wchar_t>;
 #endif
 #endif
 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/bits/streambuf.tcc src/gcc-4.3.2/libstdc++-v3/include/bits/streambuf.tcc
--- origsrc/gcc-4.3.2/libstdc++-v3/include/bits/streambuf.tcc	2006-02-10 18:29:04.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/bits/streambuf.tcc	2008-12-29 21:20:06.250000000 +0000
@@ -151,7 +151,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   // 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>*,
@@ -162,7 +162,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 			  basic_streambuf<char>*, bool&);
 
 #ifdef _GLIBCXX_USE_WCHAR_T
-  extern template class basic_streambuf<wchar_t>;
+  extern template class _GLIBCXX_IMPORT basic_streambuf<wchar_t>;
   extern template
     streamsize
     __copy_streambufs(basic_streambuf<wchar_t>*,
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/ext/concurrence.h src/gcc-4.3.2/libstdc++-v3/include/ext/concurrence.h
--- origsrc/gcc-4.3.2/libstdc++-v3/include/ext/concurrence.h	2008-03-26 23:21:44.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/ext/concurrence.h	2008-12-29 21:20:06.250000000 +0000
@@ -65,7 +65,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
 
   // NB: As this is used in libsupc++, need to only depend on
   // exception. No stdexception classes, no use of std::string.
-  class __concurrence_lock_error : public std::exception
+  class _GLIBCXX_IMPORT __concurrence_lock_error : public std::exception
   {
   public:
     virtual char const*
@@ -73,7 +73,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
     { return "__gnu_cxx::__concurrence_lock_error"; }
   };
 
-  class __concurrence_unlock_error : public std::exception
+  class _GLIBCXX_IMPORT __concurrence_unlock_error : public std::exception
   {
   public:
     virtual char const*
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/std/iostream src/gcc-4.3.2/libstdc++-v3/include/std/iostream
--- origsrc/gcc-4.3.2/libstdc++-v3/include/std/iostream	2007-03-04 22:59:49.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/std/iostream	2008-12-29 21:20:06.265625000 +0000
@@ -60,16 +60,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  termination.  For more information, see the HOWTO 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)
 
 #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)
 #endif
   //@}
 
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/include/std/stdexcept src/gcc-4.3.2/libstdc++-v3/include/std/stdexcept
--- origsrc/gcc-4.3.2/libstdc++-v3/include/std/stdexcept	2008-01-31 18:44:55.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/include/std/stdexcept	2008-12-29 21:20:06.265625000 +0000
@@ -50,7 +50,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  program runs (e.g., violations of class invariants).
    *  @brief One of two subclasses of exception.
    */
-  class logic_error : public exception 
+  class _GLIBCXX_IMPORT logic_error : public exception
   {
     string _M_msg;
 
@@ -70,14 +70,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 
   /** 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
   {
   public:
     explicit domain_error(const string& __arg);
   };
 
   /** Thrown to report invalid arguments to functions.  */
-  class 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)
 
   /** Thrown when an object is constructed that would exceed its maximum
    *  permitted size (e.g., a basic_string instance).  */
-  class length_error : public logic_error 
+  class _GLIBCXX_IMPORT length_error : public logic_error
   {
   public:
     explicit length_error(const string& __arg);
@@ -93,7 +93,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 
   /** This represents an argument whose value is not within the expected
    *  range (e.g., boundary checks in basic_string).  */
-  class out_of_range : public logic_error 
+  class _GLIBCXX_IMPORT out_of_range : public logic_error
   {
   public:
     explicit out_of_range(const string& __arg);
@@ -104,7 +104,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  the program executes.
    *  @brief One of two subclasses of exception.
    */
-  class runtime_error : public exception 
+  class _GLIBCXX_IMPORT runtime_error : public exception
   {
     string _M_msg;
 
@@ -123,7 +123,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   };
 
   /** Thrown to indicate range errors in internal computations.  */
-  class range_error : public runtime_error 
+  class _GLIBCXX_IMPORT range_error : public runtime_error
   {
   public:
     explicit range_error(const string& __arg);
@@ -137,7 +137,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   };
 
   /** Thrown to indicate arithmetic underflow.  */
-  class underflow_error : public runtime_error 
+  class _GLIBCXX_IMPORT underflow_error : public runtime_error
   {
   public:
     explicit underflow_error(const string& __arg);
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/libmath/Makefile.in src/gcc-4.3.2/libstdc++-v3/libmath/Makefile.in
--- origsrc/gcc-4.3.2/libstdc++-v3/libmath/Makefile.in	2008-02-11 10:05:33.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/libmath/Makefile.in	2008-12-29 21:23:13.515625000 +0000
@@ -37,6 +37,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 subdir = libmath
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -345,7 +346,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/libsupc++/Makefile.am src/gcc-4.3.2/libstdc++-v3/libsupc++/Makefile.am
--- origsrc/gcc-4.3.2/libstdc++-v3/libsupc++/Makefile.am	2007-05-08 07:50:32.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/libsupc++/Makefile.am	2008-12-29 21:20:06.281250000 +0000
@@ -153,7 +153,7 @@ 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
 
 # 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 -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/libsupc++/Makefile.in src/gcc-4.3.2/libstdc++-v3/libsupc++/Makefile.in
--- origsrc/gcc-4.3.2/libstdc++-v3/libsupc++/Makefile.in	2008-02-11 10:05:33.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/libsupc++/Makefile.in	2008-12-29 21:23:13.750000000 +0000
@@ -38,6 +38,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 DIST_COMMON = $(glibcxxinstall_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(top_srcdir)/fragment.am
 subdir = libsupc++
@@ -461,7 +462,7 @@ 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
 
 # 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
@@ -578,7 +579,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/libsupc++/exception src/gcc-4.3.2/libstdc++-v3/libsupc++/exception
--- origsrc/gcc-4.3.2/libstdc++-v3/libsupc++/exception	2007-06-26 12:01:15.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/libsupc++/exception	2008-12-29 21:20:06.312500000 +0000
@@ -53,7 +53,7 @@ namespace std 
    *  your own %exception classes, or use a different hierarchy, or to
    *  throw non-class data (e.g., fundamental types).
    */
-  class exception 
+  class _GLIBCXX_IMPORT exception
   {
   public:
     exception() throw() { }
@@ -66,7 +66,7 @@ namespace std 
 
   /** If an %exception is thrown which is not listed in a function's
    *  %exception specification, one of these may be thrown.  */
-  class bad_exception : public exception 
+  class _GLIBCXX_IMPORT bad_exception : public exception
   {
   public:
     bad_exception() throw() { }
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/libsupc++/new src/gcc-4.3.2/libstdc++-v3/libsupc++/new
--- origsrc/gcc-4.3.2/libstdc++-v3/libsupc++/new	2007-06-26 12:01:15.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/libsupc++/new	2008-12-29 21:20:06.328125000 +0000
@@ -55,7 +55,7 @@ namespace std 
    *
    *  @c bad_alloc (or classes derived from it) is used to report allocation
    *  errors from the throwing forms of @c new.  */
-  class bad_alloc : public exception 
+  class _GLIBCXX_IMPORT bad_alloc : public exception
   {
   public:
     bad_alloc() throw() { }
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/libsupc++/typeinfo src/gcc-4.3.2/libstdc++-v3/libsupc++/typeinfo
--- origsrc/gcc-4.3.2/libstdc++-v3/libsupc++/typeinfo	2007-10-07 00:40:32.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/libsupc++/typeinfo	2008-12-29 21:20:06.328125000 +0000
@@ -163,7 +163,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
   {
   public:
     bad_cast() throw() { }
@@ -177,7 +177,7 @@ namespace std 
   };
   
   /** If you use a NULL pointer in a @c typeid expression, this is thrown.  */
-  class bad_typeid : public exception 
+  class _GLIBCXX_IMPORT bad_typeid : public exception
   {
   public:
     bad_typeid () throw() { }
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/po/Makefile.in src/gcc-4.3.2/libstdc++-v3/po/Makefile.in
--- origsrc/gcc-4.3.2/libstdc++-v3/po/Makefile.in	2008-02-11 10:05:33.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/po/Makefile.in	2008-12-29 21:23:13.859375000 +0000
@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(top_srcdir)/fragment.am
 subdir = po
@@ -330,7 +331,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 tags: TAGS
 TAGS:
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/scripts/testsuite_flags.in src/gcc-4.3.2/libstdc++-v3/scripts/testsuite_flags.in
--- origsrc/gcc-4.3.2/libstdc++-v3/scripts/testsuite_flags.in	2007-09-11 23:32:51.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/scripts/testsuite_flags.in	2008-12-29 21:20:06.343750000 +0000
@@ -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 -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/src/Makefile.am src/gcc-4.3.2/libstdc++-v3/src/Makefile.am
--- origsrc/gcc-4.3.2/libstdc++-v3/src/Makefile.am	2008-02-29 18:26:50.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/src/Makefile.am	2008-12-29 21:20:06.343750000 +0000
@@ -277,7 +277,7 @@ AM_CXXFLAGS = \
 LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(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
 
 # 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 -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/src/Makefile.in src/gcc-4.3.2/libstdc++-v3/src/Makefile.in
--- origsrc/gcc-4.3.2/libstdc++-v3/src/Makefile.in	2008-02-29 18:26:50.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/src/Makefile.in	2008-12-29 21:23:14.062500000 +0000
@@ -37,6 +37,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(top_srcdir)/fragment.am
 subdir = src
@@ -464,7 +465,7 @@ AM_CXXFLAGS = \
 LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(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
 
 # 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
@@ -561,7 +562,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/testsuite/Makefile.in src/gcc-4.3.2/libstdc++-v3/testsuite/Makefile.in
--- origsrc/gcc-4.3.2/libstdc++-v3/testsuite/Makefile.in	2008-02-11 10:05:33.000000000 +0000
+++ src/gcc-4.3.2/libstdc++-v3/testsuite/Makefile.in	2008-12-29 21:23:14.187500000 +0000
@@ -36,6 +36,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(top_srcdir)/fragment.am
 subdir = testsuite
@@ -356,7 +357,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 uninstall-info-am:
 tags: TAGS
 TAGS:
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/libstdc++-v3/testsuite/lib/libstdc++.exp src/gcc-4.3.2/libstdc++-v3/testsuite/lib/libstdc++.exp
--- origsrc/gcc-4.3.2/libstdc++-v3/testsuite/lib/libstdc++.exp	2007-10-06 04:06:37.000000000 +0100
+++ src/gcc-4.3.2/libstdc++-v3/testsuite/lib/libstdc++.exp	2008-12-29 21:20:06.359375000 +0000
@@ -112,6 +112,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
 
@@ -132,6 +135,9 @@ proc libstdc++_init { testfile } {
         set gccdir [file dirname $gccdir]
 	append ld_library_path_tmp ":${gccdir}"
     }
+    if { [string match "*-*-cygwin*" $target_triplet] } {
+	append ld_library_path_tmp ":${blddir}/../libgcc"
+    }
     v3track gccdir 3
 
     # Locate libgomp. This is only required for parallel mode.
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/ltmain.sh src/gcc-4.3.2/ltmain.sh
--- origsrc/gcc-4.3.2/ltmain.sh	2007-05-25 20:26:27.000000000 +0100
+++ src/gcc-4.3.2/ltmain.sh	2008-12-29 21:20:06.375000000 +0000
@@ -6266,8 +6266,12 @@ EOF
 
       func_show_eval "$link_command" 'exit $?'
 
-      # Now create the wrapper script.
-      func_echo "creating $output"
+      # Now create the wrapper script.  If we don't respect opt_silent here,
+      # some of the libjava link tests think that the fact there was output
+      # generated means there must have been an error.
+      $opt_silent || {
+	func_echo "creating $output"
+      }
 
       # Quote the relink command for shipping.
       if test -n "$relink_command"; then
@@ -7112,7 +7116,19 @@ fi\
 	  # place dlname in correct position for cygwin
 	  tdlname=$dlname
 	  case $host,$output,$installed,$module,$dlname in
-	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	    # Insufficient.  If the last element of the path isn't '/lib',
+	    # as in for instance when it is '4.3.2', we need to append moar dots.
+	    #*cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	    # Try this instead: 
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll)
+	      tlibdir=$install_libdir
+	      cygming_moar_dots=
+	      while [ x`basename "$tlibdir"` != "xlib" ] ;
+	      do
+	        tlibdir=`dirname "$tlibdir"`
+	        cygming_moar_dots=../${cygming_moar_dots}
+	      done
+	      tdlname=${cygming_moar_dots}../bin/$dlname ;;
 	  esac
 	  $ECHO > $output "\
 # $outputname - a libtool library file
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/zlib/Makefile.am src/gcc-4.3.2/zlib/Makefile.am
--- origsrc/gcc-4.3.2/zlib/Makefile.am	2007-04-14 20:52:27.000000000 +0100
+++ src/gcc-4.3.2/zlib/Makefile.am	2008-12-29 21:20:06.375000000 +0000
@@ -55,6 +55,8 @@ AM_MAKEFLAGS = \
 	"LD=$(LD)" \
 	"LIBCFLAGS=$(LIBCFLAGS)" \
 	"NM=$(NM)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"PICFLAG=$(PICFLAG)" \
 	"RANLIB=$(RANLIB)" \
 	"DESTDIR=$(DESTDIR)"
diff -purN -x CYGWIN-PATCHES -x 'aclocal.m4~' -x aclocal.m4t -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x '*config.h.in' -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in origsrc/gcc-4.3.2/zlib/Makefile.in src/gcc-4.3.2/zlib/Makefile.in
--- origsrc/gcc-4.3.2/zlib/Makefile.in	2008-08-27 19:09:37.000000000 +0100
+++ src/gcc-4.3.2/zlib/Makefile.in	2008-12-29 21:23:17.609375000 +0000
@@ -38,6 +38,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+LIBOBJDIR =
 DIST_COMMON = $(srcdir)/../config.guess $(srcdir)/../config.sub README \
 	ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/configure $(am__configure_deps) \
@@ -54,7 +55,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c
 	$(top_srcdir)/../config/lead-dot.m4 \
 	$(top_srcdir)/../config/multi.m4 $(top_srcdir)/../ltoptions.m4 \
 	$(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
-	$(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
 	$(top_srcdir)/../config/no-executables.m4 \
 	$(top_srcdir)/../libtool.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -268,6 +269,8 @@ AM_MAKEFLAGS = \
 	"LD=$(LD)" \
 	"LIBCFLAGS=$(LIBCFLAGS)" \
 	"NM=$(NM)" \
+	"OBJDUMP=$(OBJDUMP)" \
+	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
 	"PICFLAG=$(PICFLAG)" \
 	"RANLIB=$(RANLIB)" \
 	"DESTDIR=$(DESTDIR)"
@@ -448,7 +451,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 
 # GNU Make needs to see an explicit $(MAKE) variable in the command it
 # runs to enable its job server during parallel builds.  Hence the

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-03 19:39 [ITP] gcc-tools-autoconf, gcc-tools-automake Charles Wilson
  2009-01-03 22:14 ` Dave Korn
  2009-01-05  6:20 ` Yaakov (Cygwin/X)
@ 2009-01-07  5:37 ` Charles Wilson
  2009-01-07  6:00   ` Christopher Faylor
  2 siblings, 1 reply; 21+ messages in thread
From: Charles Wilson @ 2009-01-07  5:37 UTC (permalink / raw)
  To: cygwin-apps

Charles Wilson wrote:
> This should make it easier for Dave, and those who want to help him, to
> develop gcc and binutils -- avoiding things like this:
> http://www.cygwin.com/ml/cygwin/2008-12/msg00201.html

Well, given Dave's positive reaction -- two votes! -- I went ahead and
added these packages to the distro.

[1] http://cygwin.com/ml/cygwin-apps/2009-01/msg00001.html
[2] http://cygwin.com/ml/cygwin-apps/2009-01/msg00015.html

--
Chuck

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-07  5:37 ` Charles Wilson
@ 2009-01-07  6:00   ` Christopher Faylor
  2009-01-07 10:08     ` Dave Korn
  2009-01-07 13:12     ` Eric Blake
  0 siblings, 2 replies; 21+ messages in thread
From: Christopher Faylor @ 2009-01-07  6:00 UTC (permalink / raw)
  To: cygwin-apps

On Wed, Jan 07, 2009 at 12:37:37AM -0500, Charles Wilson wrote:
>Charles Wilson wrote:
>> This should make it easier for Dave, and those who want to help him, to
>> develop gcc and binutils -- avoiding things like this:
>> http://www.cygwin.com/ml/cygwin/2008-12/msg00201.html
>
>Well, given Dave's positive reaction -- two votes! -- I went ahead and
>added these packages to the distro.

The number of votes required is five, not two.

cgf

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-07  6:00   ` Christopher Faylor
@ 2009-01-07 10:08     ` Dave Korn
  2009-01-07 13:12     ` Eric Blake
  1 sibling, 0 replies; 21+ messages in thread
From: Dave Korn @ 2009-01-07 10:08 UTC (permalink / raw)
  To: cygwin-apps

Christopher Faylor wrote:
> On Wed, Jan 07, 2009 at 12:37:37AM -0500, Charles Wilson wrote:
>> Charles Wilson wrote:
>>> This should make it easier for Dave, and those who want to help him, to
>>> develop gcc and binutils -- avoiding things like this:
>>> http://www.cygwin.com/ml/cygwin/2008-12/msg00201.html
>> Well, given Dave's positive reaction -- two votes! -- I went ahead and
>> added these packages to the distro.
>
> The number of votes required is five, not two.
>
> cgf

  And I was really only confirming my vote.  Or maybe I was giving one +1 to
each package.  Yeah, that's it.  One vote for each package.  That must have
been what I meant.  <g>

[ scampers off to install them in case they have to be withdrawn ]

    cheers,
      DaveK

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-07  6:00   ` Christopher Faylor
  2009-01-07 10:08     ` Dave Korn
@ 2009-01-07 13:12     ` Eric Blake
  2009-01-07 14:44       ` Charles Wilson
  2009-01-08 17:06       ` Jari Aalto
  1 sibling, 2 replies; 21+ messages in thread
From: Eric Blake @ 2009-01-07 13:12 UTC (permalink / raw)
  To: cygwin-apps

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Christopher Faylor on 1/6/2009 11:00 PM:
> On Wed, Jan 07, 2009 at 12:37:37AM -0500, Charles Wilson wrote:
>> Charles Wilson wrote:
>>> This should make it easier for Dave, and those who want to help him, to
>>> develop gcc and binutils -- avoiding things like this:
>>> http://www.cygwin.com/ml/cygwin/2008-12/msg00201.html
>> Well, given Dave's positive reaction -- two votes! -- I went ahead and
>> added these packages to the distro.
> 
> The number of votes required is five, not two.

Here's my +1.

- --
Don't work too hard, make some time for fun as well!

Eric Blake             ebb9@byu.net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAklkqkwACgkQ84KuGfSFAYD2zACgsTHI8sMPJv3YDxxDGd8oAB5i
KpUAnjRdFe0RqpBdhq5EJ+dzoyAQI85X
=QEBe
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-07 13:12     ` Eric Blake
@ 2009-01-07 14:44       ` Charles Wilson
  2009-01-07 15:50         ` Christopher Faylor
  2009-01-08 17:06       ` Jari Aalto
  1 sibling, 1 reply; 21+ messages in thread
From: Charles Wilson @ 2009-01-07 14:44 UTC (permalink / raw)
  To: CygWin-Apps

For some reason I don't see the following message:
> According to Christopher Faylor on 1/6/2009 11:00 PM:
>> The number of votes required is five, not two.

But my reply is, this wasn't a traditional ITP anyway. I'm already the
maintainer of all existing packages in the automake and autoconf
families. I don't ask for five votes when adding a new automake1.(N+1)
package series, and I didn't ask for five votes when replacing wholesale
the old autoconf-stable/devel with the autoconf2.1/2.5 series(es) -- tho
I did in that case solicit discussion. This is similar -- but not
identical.  There were some concerns, but I felt that I explained
adequately my reasoning and the need for a new package series for each
of these two pre-existing package families to go forward.

Perhaps I should have titled my original post [RFD] rather than [ITP].

But I didn't. So if you (cgf) would like, I'll pull the gcc-tools-*
packages and wait for 3 (2 more now, counting Eric's) more votes. No big
deal.

--
Chuck

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-07 14:44       ` Charles Wilson
@ 2009-01-07 15:50         ` Christopher Faylor
  0 siblings, 0 replies; 21+ messages in thread
From: Christopher Faylor @ 2009-01-07 15:50 UTC (permalink / raw)
  To: cygwin-apps

On Wed, Jan 07, 2009 at 09:44:39AM -0500, Charles Wilson wrote:
>But I didn't. So if you (cgf) would like, I'll pull the gcc-tools-*
>packages and wait for 3 (2 more now, counting Eric's) more votes. No big
>deal.

I'm not going to pull the package but I couldn't let a confusing email
sit in the archives which seemed to imply that only two votes were
needed.

cgf

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-07 13:12     ` Eric Blake
  2009-01-07 14:44       ` Charles Wilson
@ 2009-01-08 17:06       ` Jari Aalto
  2009-01-08 18:11         ` Peter Rosin
  1 sibling, 1 reply; 21+ messages in thread
From: Jari Aalto @ 2009-01-08 17:06 UTC (permalink / raw)
  To: cygwin-apps

Eric Blake <ebb9@byu.net> writes:

> According to Christopher Faylor on 1/6/2009 11:00 PM:
>
>> On Wed, Jan 07, 2009 at 12:37:37AM -0500, Charles Wilson wrote:
>>> Charles Wilson wrote:
>>>> This should make it easier for Dave, and those who want to help him, to
>>>> develop gcc and binutils -- avoiding things like this:
>>>> http://www.cygwin.com/ml/cygwin/2008-12/msg00201.html
>>> Well, given Dave's positive reaction -- two votes! -- I went ahead and
>>> added these packages to the distro.
>> 
>> The number of votes required is five, not two.
>
> Here's my +1.

Likewise +1

Jari

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-08 17:06       ` Jari Aalto
@ 2009-01-08 18:11         ` Peter Rosin
  2009-01-08 18:42           ` Christopher Faylor
  0 siblings, 1 reply; 21+ messages in thread
From: Peter Rosin @ 2009-01-08 18:11 UTC (permalink / raw)
  To: cygwin-apps

Den 2009-01-08 18:06, skrev Jari Aalto:
> Eric Blake <ebb9@byu.net> writes:
> 
>> According to Christopher Faylor on 1/6/2009 11:00 PM:
>>
>>> On Wed, Jan 07, 2009 at 12:37:37AM -0500, Charles Wilson wrote:
>>>> Charles Wilson wrote:
>>>>> This should make it easier for Dave, and those who want to help him, to
>>>>> develop gcc and binutils -- avoiding things like this:
>>>>> http://www.cygwin.com/ml/cygwin/2008-12/msg00201.html
>>>> Well, given Dave's positive reaction -- two votes! -- I went ahead and
>>>> added these packages to the distro.
>>> The number of votes required is five, not two.
>> Here's my +1.
> 
> Likewise +1

I want new gcc releases sooner rather than later.

+1 -> 5

Cheers,
Peter

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
  2009-01-08 18:11         ` Peter Rosin
@ 2009-01-08 18:42           ` Christopher Faylor
  0 siblings, 0 replies; 21+ messages in thread
From: Christopher Faylor @ 2009-01-08 18:42 UTC (permalink / raw)
  To: cygwin-apps

On Thu, Jan 08, 2009 at 07:11:29PM +0100, Peter Rosin wrote:
> Den 2009-01-08 18:06, skrev Jari Aalto:
>> Eric Blake <ebb9@byu.net> writes:
>>> According to Christopher Faylor on 1/6/2009 11:00 PM:
>>>
>>>> On Wed, Jan 07, 2009 at 12:37:37AM -0500, Charles Wilson wrote:
>>>>> Charles Wilson wrote:
>>>>>> This should make it easier for Dave, and those who want to help him, 
>>>>>> to
>>>>>> develop gcc and binutils -- avoiding things like this:
>>>>>> http://www.cygwin.com/ml/cygwin/2008-12/msg00201.html
>>>>> Well, given Dave's positive reaction -- two votes! -- I went ahead and
>>>>> added these packages to the distro.
>>>> The number of votes required is five, not two.
>>> Here's my +1.
>> Likewise +1
>
> I want new gcc releases sooner rather than later.
>
> +1 -> 5

Please pay attention and stop the pointless voting on this.

http://cygwin.com/ml/cygwin-apps/2009-01/msg00023.html

cgf

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [ITP] gcc-tools-autoconf, gcc-tools-automake
       [not found] <495FB6CF.1060701@cwilson.fastmail.fm>
@ 2009-01-06 18:35 ` Dave Korn
  0 siblings, 0 replies; 21+ messages in thread
From: Dave Korn @ 2009-01-06 18:35 UTC (permalink / raw)
  To: cygwin-apps

Now, let's try that again, only without the comedy Reply-To: header this time!

Charles Wilson wrote:

> http://cygwin.cwilson.fastmail.fm/ITP/gcc-tools-autoconf-2.59-2-src.tar.bz2
> http://cygwin.cwilson.fastmail.fm/ITP/gcc-tools-autoconf-2.59-2.tar.bz2
> http://cygwin.cwilson.fastmail.fm/ITP/gcc-tools-autoconf.hint
>
> sdesc: "(gcc-special) automatic configure script builder"
> ldesc: "This is a custom version of autoconf, installed into
> /opt/gcc-tools/ for the use of gcc developers. Gcc requires
> an unpatched, pristine version of autoconf when preparing patches
> for official submission."
> category: Devel
> requires: m4 perl coreutils texinfo
>
>
> http://cygwin.cwilson.fastmail.fm/ITP/gcc-tools-automake-1.9.6-2-src.tar.bz2
> http://cygwin.cwilson.fastmail.fm/ITP/gcc-tools-automake-1.9.6-2.tar.bz2
> http://cygwin.cwilson.fastmail.fm/ITP/gcc-tools-automake.hint
>
> sdesc: "(gcc-special) a tool for generating GNU-compliant Makefiles"
> ldesc: "This is a custom version of automake, installed into
> /opt/gcc-tools/ for the use of gcc developers. Gcc requires
> an unpatched, pristine version of automake when preparing patches
> for official submission."
> category: Devel
> requires: gcc-tools-autoconf perl coreutils m4 texinfo

  Packaging all looks good, builds from source with no problems.  +1.

    cheers,
      DaveK

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2009-01-08 18:42 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-01-03 19:39 [ITP] gcc-tools-autoconf, gcc-tools-automake Charles Wilson
2009-01-03 22:14 ` Dave Korn
2009-01-05  6:20 ` Yaakov (Cygwin/X)
2009-01-05  7:05   ` Charles Wilson
2009-01-05  7:27     ` Yaakov (Cygwin/X)
2009-01-05  7:44       ` Charles Wilson
2009-01-06 17:49         ` Dave Korn
2009-01-06 17:54       ` Dave Korn
2009-01-05 13:35   ` Charles Wilson
2009-01-05 15:30     ` Yaakov (Cygwin/X)
2009-01-06  4:46       ` Charles Wilson
2009-01-07  5:37 ` Charles Wilson
2009-01-07  6:00   ` Christopher Faylor
2009-01-07 10:08     ` Dave Korn
2009-01-07 13:12     ` Eric Blake
2009-01-07 14:44       ` Charles Wilson
2009-01-07 15:50         ` Christopher Faylor
2009-01-08 17:06       ` Jari Aalto
2009-01-08 18:11         ` Peter Rosin
2009-01-08 18:42           ` Christopher Faylor
     [not found] <495FB6CF.1060701@cwilson.fastmail.fm>
2009-01-06 18:35 ` Dave Korn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).