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