I have tried with Ubuntu Maverick which has the same upstream tarball (mingw32_4.2.1.dfsg.orig.tar.gz) but a different patch (mingw32_4.2.1.dfsg-2ubuntu1.diff.gz). The compiler works there so I took their patch and diffed it with the ubuntu squeeze patch. I took out the relevant parts and obtained a patch, say bugfix.diff, then in squeeze I did the following:
apt-src install mingw32
patch -p0 < bugfix.diff
cd mingw32-4.2.1.dfsg
dpkg-buildpackage
And installed the resulting .deb, it worked.
Following is the content of bugfix.diff:
--- mingw32-4.2.1.dfsg.orig/debian/rules
+++ mingw32-4.2.1.dfsg/debian/rules
@@ -70,6 +70,16 @@
&& $(MAKE) install prefix=$(top_dir)/debian/$(package)/usr
\
mandir=$(top_dir)/debian/$(package)/usr/share/man
+ cd $(build_objs)
\
+ && $(MAKE) install-shared-libgcc -C gcc
\
+ prefix=$(top_dir)/debian/$(package)/usr
\
+
mandir=$(top_dir)/debian/$(package)/usr/share/man
+
+ cd $(build_objs)
\
+ && $(MAKE) install-shared-libstdc++ -C $(target)/libstdc++-v3
\
+ prefix=$(top_dir)/debian/$(package)/usr
\
+
mandir=$(top_dir)/debian/$(package)/usr/share/man
+
# remove some non-cross stuff that will clash with other packages
# and shuffle things about as required.
rm -rf debian/$(package)/usr/include
@@ -245,6 +255,16 @@
&& $(MAKE) install prefix=$(top_dir)/debian/$(package)/usr
\
mandir=$(top_dir)/debian/$(package)/usr/share/man
+ cd $(build_objs)
\
+ && $(MAKE) install-shared-libgcc -C gcc
\
+ prefix=$(top_dir)/debian/$(package)/usr
\
+
mandir=$(top_dir)/debian/$(package)/usr/share/man
+
+ cd $(build_objs)
\
+ && $(MAKE) install-shared-libstdc++ -C $(target)/libstdc++-v3
\
+ prefix=$(top_dir)/debian/$(package)/usr
\
+
mandir=$(top_dir)/debian/$(package)/usr/share/man
+
# remove some non-cross stuff that will clash with other packages
# and shuffle things about as required.
rm -rf debian/$(package)/usr/include
--- mingw32-4.2.1.dfsg.orig/debian/patches/01-shared-libgcc-libc++.patch
+++ mingw32-4.2.1.dfsg/debian/patches/01-shared-libgcc-libc++.patch
@@ -0,0 +1,49 @@
+diff -ur gcc-4.2.1-2-dfsg/gcc/config/i386/t-mingw32
gcc-4.2.1-2-dfsg/gcc/config/i386/t-mingw32
+--- gcc-4.2.1-2-dfsg/gcc/config/i386/t-mingw32 2007-08-13 09:48:03.000000000
+0200
++++ gcc-4.2.1-2-dfsg/gcc/config/i386/t-mingw32 2008-02-25 12:41:08.000000000
+0100
+@@ -5,15 +5,15 @@
+ shared-libgcc: libgcc_s.a libgcc_sjlj_1.dll
+ libgcc_s.a libgcc_sjlj_1.dll: libgcc.a
+ cp -f libgcc.a libgcc_t.a
+- $(AR) -d libgcc_t.a _chkstk.o _ctors.o
+- dlltool --output-def libgcc_s.def --export-all libgcc_t.a
++ i586-mingw32msvc-ar -d libgcc_t.a _chkstk.o _ctors.o
++ i586-mingw32msvc-dlltool --output-def libgcc_s.def --export-all
libgcc_t.a
+ $(GCC_FOR_TARGET) -shared -fno-exceptions -o libgcc_sjlj_1.dll
-Wl,--out-implib,libgcc_s.a libgcc_s.def libgcc_t.a
+- $(AR) -r libgcc_s.a libgcc/_chkstk.o libgcc/_ctors.o
++ i586-mingw32msvc-ar -r libgcc_s.a libgcc/_chkstk.o libgcc/_ctors.o
+ rm -f libgcc_t.a _chkstk.o _ctors.o libgcc_s.def
+
+ install-shared-libgcc: installdirs shared-libgcc
+ $(INSTALL_DATA) libgcc_s.a $(DESTDIR)$(libsubdir)/
+- $(INSTALL_PROGRAM) libgcc_sjlj_1.dll $(DESTDIR)$(bindir)/
++ $(INSTALL_DATA) libgcc_sjlj_1.dll $(DESTDIR)$(libsubdir)/
+
+ clean-shared-libgcc:
+ rm -f libgcc_s.a libgcc_sjlj_1.dll
+diff -ur gcc-4.2.1-2-dfsg/libstdc++-v3/config/os/mingw32/x-mingw32
gcc-4.2.1-2-dfsg/libstdc++-v3/config/os/mingw32/x-mingw32
+--- gcc-4.2.1-2-dfsg/libstdc++-v3/config/os/mingw32/x-mingw32 2007-08-13
09:48:03.000000000 +0200
++++ gcc-4.2.1-2-dfsg/libstdc++-v3/config/os/mingw32/x-mingw32 2008-02-25
12:43:58.000000000 +0100
+@@ -1,17 +1,17 @@
+ shared-libstdc++: src/.libs/libstdc++_sjlj_6.dll src/.libs/libstdc++_s.a
+ src/.libs/libstdc++_sjlj_6.dll src/.libs/libstdc++_s.a:
$(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES)
+ cp -f src/.libs/libstdc++.a libstdc++_t.a
+- ar -x libstdc++_t.a tinfo.o tinfo2.o
+- ar -d libstdc++_t.a tinfo.o tinfo2.o
+- dlltool --export-all --output-def=libstdc++.def libstdc++_t.a
++ i586-mingw32msvc-ar -x libstdc++_t.a tinfo.o tinfo2.o
++ i586-mingw32msvc-ar -d libstdc++_t.a tinfo.o tinfo2.o
++ i586-mingw32msvc-dlltool --export-all --output-def=libstdc++.def
libstdc++_t.a
+ $(CC) -shared -shared-libgcc -o src/.libs/libstdc++_sjlj_6.dll
-Wl,--out-implib,src/.libs/libstdc++_s.a \
+ libstdc++.def src/.libs/libstdc++.a
+- ar -rs src/.libs/libstdc++_s.a tinfo.o tinfo2.o
++ i586-mingw32msvc-ar -rs src/.libs/libstdc++_s.a tinfo.o tinfo2.o
+ rm -f libstdc++_t.a tinfo.o tinfo2.o
+
+ install-shared-libstdc++: installdirs shared-libstdc++
+ $(INSTALL_DATA) src/.libs/libstdc++_s.a
$(DESTDIR)$(glibcxx_toolexeclibdir)/
+- $(INSTALL_PROGRAM) src/.libs/libstdc++_sjlj_6.dll $(DESTDIR)$(bindir)/
++ $(INSTALL_DATA) src/.libs/libstdc++_sjlj_6.dll
$(DESTDIR)$(glibcxx_toolexeclibdir)/
+
+ clean-shared-libstdc++:
+ rm -f src/.libs/libstdc++_sjlj_6.dll src/.libs/libstdc++_s.a
signature.asc
Description: Digital signature

