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

Attachment: signature.asc
Description: Digital signature

Reply via email to