diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/Makefile.def gcc-3.4.4-3/Makefile.def
--- gcc-3.4.4-3-orig/Makefile.def	2004-01-14 20:09:38.000000000 +0000
+++ gcc-3.4.4-3/Makefile.def	2006-05-13 17:35:14.000000000 +0100
@@ -116,6 +116,7 @@
 target_modules = { module= boehm-gc; };
 target_modules = { module= qthreads; };
 target_modules = { module= rda; };
+target_modules = { module= libphobos; };
 
 // These are (some of) the make targets to be done in each subdirectory.
 // Not all; these are the ones which don't have special options.
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/Makefile.in gcc-3.4.4-3/Makefile.in
--- gcc-3.4.4-3-orig/Makefile.in	2005-05-19 10:58:00.000000000 +0100
+++ gcc-3.4.4-3/Makefile.in	2005-06-03 23:16:54.000000000 +0100
@@ -612,7 +612,8 @@
     maybe-configure-target-zlib \
     maybe-configure-target-boehm-gc \
     maybe-configure-target-qthreads \
-    maybe-configure-target-rda
+    maybe-configure-target-rda \
+    maybe-configure-target-libphobos
 
 # The target built for a native build.
 .PHONY: all.normal
@@ -701,7 +702,8 @@
     maybe-all-target-zlib \
     maybe-all-target-boehm-gc \
     maybe-all-target-qthreads \
-    maybe-all-target-rda
+    maybe-all-target-rda \
+    maybe-all-target-libphobos
 
 # Do a target for all the subdirectories.  A ``make do-X'' will do a
 # ``make X'' in all subdirectories (because, in general, there is a
@@ -795,7 +797,8 @@
     maybe-info-target-zlib \
     maybe-info-target-boehm-gc \
     maybe-info-target-qthreads \
-    maybe-info-target-rda
+    maybe-info-target-rda \
+    maybe-info-target-libphobos
 
 # GCC, the eternal special case
 .PHONY: maybe-info-gcc info-gcc
@@ -2583,6 +2586,28 @@
 	  || exit 1
 
 
+.PHONY: maybe-info-target-libphobos info-target-libphobos
+maybe-info-target-libphobos:
+
+info-target-libphobos: \
+    configure-target-libphobos 
+	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0 ; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	echo "Doing info in $(TARGET_SUBDIR)/libphobos" ; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+	          info) \
+	  || exit 1
+
+
 
 .PHONY: do-dvi
 do-dvi: dvi-host dvi-target
@@ -2671,7 +2696,8 @@
     maybe-dvi-target-zlib \
     maybe-dvi-target-boehm-gc \
     maybe-dvi-target-qthreads \
-    maybe-dvi-target-rda
+    maybe-dvi-target-rda \
+    maybe-dvi-target-libphobos
 
 # GCC, the eternal special case
 .PHONY: maybe-dvi-gcc dvi-gcc
@@ -4459,6 +4485,28 @@
 	  || exit 1
 
 
+.PHONY: maybe-dvi-target-libphobos dvi-target-libphobos
+maybe-dvi-target-libphobos:
+
+dvi-target-libphobos: \
+    configure-target-libphobos 
+	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0 ; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	echo "Doing dvi in $(TARGET_SUBDIR)/libphobos" ; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+	          dvi) \
+	  || exit 1
+
+
 
 .PHONY: do-TAGS
 do-TAGS: TAGS-host TAGS-target
@@ -4547,7 +4595,8 @@
     maybe-TAGS-target-zlib \
     maybe-TAGS-target-boehm-gc \
     maybe-TAGS-target-qthreads \
-    maybe-TAGS-target-rda
+    maybe-TAGS-target-rda \
+    maybe-TAGS-target-libphobos
 
 # GCC, the eternal special case
 .PHONY: maybe-TAGS-gcc TAGS-gcc
@@ -6335,6 +6384,28 @@
 	  || exit 1
 
 
+.PHONY: maybe-TAGS-target-libphobos TAGS-target-libphobos
+maybe-TAGS-target-libphobos:
+
+TAGS-target-libphobos: \
+    configure-target-libphobos 
+	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0 ; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	echo "Doing TAGS in $(TARGET_SUBDIR)/libphobos" ; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+	          TAGS) \
+	  || exit 1
+
+
 
 .PHONY: do-install-info
 do-install-info: install-info-host install-info-target
@@ -6423,7 +6494,8 @@
     maybe-install-info-target-zlib \
     maybe-install-info-target-boehm-gc \
     maybe-install-info-target-qthreads \
-    maybe-install-info-target-rda
+    maybe-install-info-target-rda \
+    maybe-install-info-target-libphobos
 
 # GCC, the eternal special case
 .PHONY: maybe-install-info-gcc install-info-gcc
@@ -8292,6 +8364,29 @@
 	  || exit 1
 
 
+.PHONY: maybe-install-info-target-libphobos install-info-target-libphobos
+maybe-install-info-target-libphobos:
+
+install-info-target-libphobos: \
+    configure-target-libphobos \
+    info-target-libphobos 
+	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0 ; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	echo "Doing install-info in $(TARGET_SUBDIR)/libphobos" ; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+	          install-info) \
+	  || exit 1
+
+
 
 .PHONY: do-installcheck
 do-installcheck: installcheck-host installcheck-target
@@ -8380,7 +8475,8 @@
     maybe-installcheck-target-zlib \
     maybe-installcheck-target-boehm-gc \
     maybe-installcheck-target-qthreads \
-    maybe-installcheck-target-rda
+    maybe-installcheck-target-rda \
+    maybe-installcheck-target-libphobos
 
 # GCC, the eternal special case
 .PHONY: maybe-installcheck-gcc installcheck-gcc
@@ -10168,6 +10264,28 @@
 	  || exit 1
 
 
+.PHONY: maybe-installcheck-target-libphobos installcheck-target-libphobos
+maybe-installcheck-target-libphobos:
+
+installcheck-target-libphobos: \
+    configure-target-libphobos 
+	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0 ; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	echo "Doing installcheck in $(TARGET_SUBDIR)/libphobos" ; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+	          installcheck) \
+	  || exit 1
+
+
 
 .PHONY: do-mostlyclean
 do-mostlyclean: mostlyclean-host mostlyclean-target
@@ -10256,7 +10374,8 @@
     maybe-mostlyclean-target-zlib \
     maybe-mostlyclean-target-boehm-gc \
     maybe-mostlyclean-target-qthreads \
-    maybe-mostlyclean-target-rda
+    maybe-mostlyclean-target-rda \
+    maybe-mostlyclean-target-libphobos
 
 # GCC, the eternal special case
 .PHONY: maybe-mostlyclean-gcc mostlyclean-gcc
@@ -11921,6 +12040,27 @@
 	  || exit 1
 
 
+.PHONY: maybe-mostlyclean-target-libphobos mostlyclean-target-libphobos
+maybe-mostlyclean-target-libphobos:
+
+mostlyclean-target-libphobos: 
+	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0 ; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libphobos" ; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+	          mostlyclean) \
+	  || exit 1
+
+
 
 .PHONY: do-clean
 do-clean: clean-host clean-target
@@ -12009,7 +12149,8 @@
     maybe-clean-target-zlib \
     maybe-clean-target-boehm-gc \
     maybe-clean-target-qthreads \
-    maybe-clean-target-rda
+    maybe-clean-target-rda \
+    maybe-clean-target-libphobos
 
 # GCC, the eternal special case
 .PHONY: maybe-clean-gcc clean-gcc
@@ -13688,6 +13829,27 @@
 	  || exit 1
 
 
+.PHONY: maybe-clean-target-libphobos clean-target-libphobos
+maybe-clean-target-libphobos:
+
+clean-target-libphobos: 
+	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0 ; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	echo "Doing clean in $(TARGET_SUBDIR)/libphobos" ; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+	          clean) \
+	  || exit 1
+
+
 
 .PHONY: do-distclean
 do-distclean: distclean-host distclean-target
@@ -13776,7 +13938,8 @@
     maybe-distclean-target-zlib \
     maybe-distclean-target-boehm-gc \
     maybe-distclean-target-qthreads \
-    maybe-distclean-target-rda
+    maybe-distclean-target-rda \
+    maybe-distclean-target-libphobos
 
 # GCC, the eternal special case
 .PHONY: maybe-distclean-gcc distclean-gcc
@@ -15455,6 +15618,27 @@
 	  || exit 1
 
 
+.PHONY: maybe-distclean-target-libphobos distclean-target-libphobos
+maybe-distclean-target-libphobos:
+
+distclean-target-libphobos: 
+	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0 ; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	echo "Doing distclean in $(TARGET_SUBDIR)/libphobos" ; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+	          distclean) \
+	  || exit 1
+
+
 
 .PHONY: do-maintainer-clean
 do-maintainer-clean: maintainer-clean-host maintainer-clean-target
@@ -15543,7 +15727,8 @@
     maybe-maintainer-clean-target-zlib \
     maybe-maintainer-clean-target-boehm-gc \
     maybe-maintainer-clean-target-qthreads \
-    maybe-maintainer-clean-target-rda
+    maybe-maintainer-clean-target-rda \
+    maybe-maintainer-clean-target-libphobos
 
 # GCC, the eternal special case
 .PHONY: maybe-maintainer-clean-gcc maintainer-clean-gcc
@@ -17222,6 +17407,27 @@
 	  || exit 1
 
 
+.PHONY: maybe-maintainer-clean-target-libphobos maintainer-clean-target-libphobos
+maybe-maintainer-clean-target-libphobos:
+
+maintainer-clean-target-libphobos: 
+	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0 ; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libphobos" ; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+	          maintainer-clean) \
+	  || exit 1
+
+
 
 
 # Here are the targets which correspond to the do-X targets.
@@ -17364,7 +17570,8 @@
     maybe-check-target-zlib \
     maybe-check-target-boehm-gc \
     maybe-check-target-qthreads \
-    maybe-check-target-rda
+    maybe-check-target-rda \
+    maybe-check-target-libphobos
 
 # Automated reporting of test results.
 
@@ -17543,7 +17750,8 @@
     maybe-install-target-zlib \
     maybe-install-target-boehm-gc \
     maybe-install-target-qthreads \
-    maybe-install-target-rda
+    maybe-install-target-rda \
+    maybe-install-target-libphobos
 
 uninstall:
 	@echo "the uninstall target is not supported in this tree"
@@ -23309,6 +23517,88 @@
 	  $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
+.PHONY: configure-target-libphobos maybe-configure-target-libphobos
+maybe-configure-target-libphobos:
+
+# There's only one multilib.out.  Cleverer subdirs shouldn't need it copied.
+$(TARGET_SUBDIR)/libphobos/multilib.out: multilib.out
+	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos ; \
+	rm -f $(TARGET_SUBDIR)/libphobos/Makefile || : ; \
+	cp multilib.out $(TARGET_SUBDIR)/libphobos/multilib.out
+
+configure-target-libphobos: $(TARGET_SUBDIR)/libphobos/multilib.out
+	@test ! -f $(TARGET_SUBDIR)/libphobos/Makefile || exit 0; \
+	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos ; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	AR="$(AR_FOR_TARGET)"; export AR; \
+	AS="$(AS_FOR_TARGET)"; export AS; \
+	CC="$(CC_FOR_TARGET)"; export CC; \
+	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+	CPPFLAGS="$(CFLAGS_FOR_TARGET)"; export CPPFLAGS; \
+	CXX="$(CXX_FOR_TARGET)"; export CXX; \
+	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+	GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+	DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+	LD="$(LD_FOR_TARGET)"; export LD; \
+	LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+	NM="$(NM_FOR_TARGET)"; export NM; \
+	RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+	WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+	SET_GCC_LIB_PATH_CMD="@SET_GCC_LIB_PATH@"; export SET_GCC_LIB_PATH_CMD; \
+	@SET_GCC_LIB_PATH@ \
+	echo Configuring in $(TARGET_SUBDIR)/libphobos; \
+	cd "$(TARGET_SUBDIR)/libphobos" || exit 1; \
+	case $(srcdir) in \
+	  /* | [A-Za-z]:[\\/]*) \
+	    topdir=$(srcdir) ;; \
+	  *) \
+	    case "$(TARGET_SUBDIR)" in \
+	      .) topdir="../$(srcdir)" ;; \
+	      *) topdir="../../$(srcdir)" ;; \
+	    esac ;; \
+	esac; \
+	  srcdiroption="--srcdir=$${topdir}/libphobos"; \
+	  libsrcdir="$$s/libphobos"; \
+	rm -f no-such-file || : ; \
+	CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+	  $(TARGET_CONFIGARGS) $${srcdiroption} \
+	  --with-target-subdir="$(TARGET_SUBDIR)" \
+	  || exit 1
+
+.PHONY: all-target-libphobos maybe-all-target-libphobos
+maybe-all-target-libphobos:
+all-target-libphobos: configure-target-libphobos
+	@r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+.PHONY: check-target-libphobos maybe-check-target-libphobos
+maybe-check-target-libphobos:
+
+check-target-libphobos:
+	@r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
+
+
+.PHONY: install-target-libphobos maybe-install-target-libphobos
+maybe-install-target-libphobos:
+
+install-target-libphobos: installdirs
+	@r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(SET_LIB_PATH) \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+
 
 # ----------
 # GCC module
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/configure gcc-3.4.4-3/configure
--- gcc-3.4.4-3-orig/configure	2005-03-08 17:31:40.000000000 +0000
+++ gcc-3.4.4-3/configure	2005-06-03 23:16:54.000000000 +0100
@@ -897,6 +897,7 @@
 		target-newlib \
 		target-libstdc++-v3 \
 		target-libf2c \
+		target-libphobos \
 		${libgcj} \
 		target-libobjc"
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/configure.in gcc-3.4.4-3/configure.in
--- gcc-3.4.4-3-orig/configure.in	2005-03-08 17:31:40.000000000 +0000
+++ gcc-3.4.4-3/configure.in	2005-06-03 23:16:54.000000000 +0100
@@ -157,6 +157,7 @@
 		target-newlib \
 		target-libstdc++-v3 \
 		target-libf2c \
+		target-libphobos \
 		${libgcj} \
 		target-libobjc"
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/Makefile.in gcc-3.4.4-3/gcc/Makefile.in
--- gcc-3.4.4-3-orig/gcc/Makefile.in	2005-02-24 09:26:58.000000000 +0000
+++ gcc-3.4.4-3/gcc/Makefile.in	2006-05-13 17:35:16.000000000 +0100
@@ -138,9 +138,9 @@
 # TCFLAGS is used for compilations with the GCC just built.
 XCFLAGS =
 TCFLAGS =
-CFLAGS = -g
-STAGE1_CFLAGS = -g @stage1_cflags@
-BOOT_CFLAGS = -g -O2
+CFLAGS = -g0
+STAGE1_CFLAGS = -g0 @stage1_cflags@
+BOOT_CFLAGS = -g0 -O2
 
 # Flags to determine code coverage. When coverage is disabled, this will
 # contain the optimization flags, as you normally want code coverage
@@ -441,6 +441,7 @@
 gcc_gxx_include_dir = @gcc_gxx_include_dir@
 # Directory to search for site-specific includes.
 local_includedir = $(local_prefix)/include
+# local_includedir=$(libsubdir)/$(unlibsubdir)/..`echo $(exec_prefix) | sed -e 's|^$(prefix)||' -e 's|/[^/]*|/..|g'`/include
 includedir = $(prefix)/include
 # where the info files go
 infodir = @infodir@
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/ada/Makefile.in gcc-3.4.4-3/gcc/ada/Makefile.in
--- gcc-3.4.4-3-orig/gcc/ada/Makefile.in	2004-01-26 21:57:32.000000000 +0000
+++ gcc-3.4.4-3/gcc/ada/Makefile.in	2005-06-03 21:03:34.000000000 +0100
@@ -1536,9 +1536,9 @@
 
 # These tools are only built for the native version.
 gnattools3: ../stamp-tools
-#	$(MAKE) -C tools -f ../Makefile $(TOOLS_FLAGS_TO_PASS) \
-#	  TOOLSCASE=native top_builddir=../../.. \
-#	  ../../gnatmem$(exeext) $(EXTRA_GNATTOOLS)
+	$(MAKE) -C tools -f ../Makefile $(TOOLS_FLAGS_TO_PASS) \
+	  TOOLSCASE=native top_builddir=../../.. \
+	  ../../gnatmem$(exeext) $(EXTRA_GNATTOOLS)
 
 # those tools are only built for the cross version
 gnattools4: ../stamp-tools
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/ada/a-tifiio.adb gcc-3.4.4-3/gcc/ada/a-tifiio.adb
--- gcc-3.4.4-3-orig/gcc/ada/a-tifiio.adb	2003-10-21 14:41:54.000000000 +0100
+++ gcc-3.4.4-3/gcc/ada/a-tifiio.adb	2005-06-03 21:03:34.000000000 +0100
@@ -550,7 +550,6 @@
          E       : Integer)
       is
          N  : constant Natural := (A + Max_Digits - 1) / Max_Digits + 1;
-         pragma Debug (Put_Line ("N =" & N'Img));
          Q  : array (1 .. N) of Int64 := (others => 0);
 
          XX : Int64 := X;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/ada/adaint.c gcc-3.4.4-3/gcc/ada/adaint.c
--- gcc-3.4.4-3-orig/gcc/ada/adaint.c	2004-01-13 11:51:32.000000000 +0000
+++ gcc-3.4.4-3/gcc/ada/adaint.c	2006-05-13 17:35:16.000000000 +0100
@@ -76,7 +76,6 @@
 #ifdef __MINGW32__
 #include "mingw32.h"
 #include <sys/utime.h>
-#include <ctype.h>
 #else
 #ifndef VMS
 #include <utime.h>
@@ -189,9 +188,32 @@
 #define DIR_SEPARATOR '/'
 #endif
 
-char __gnat_dir_separator = DIR_SEPARATOR;
+/* Override the system.h DIR_SEPARATOR define on windows. */
+#ifdef _WIN32
+const char __gnat_dir_separator = '\\';
+#else
+const char __gnat_dir_separator = DIR_SEPARATOR;
+#endif
 
-char __gnat_path_separator = PATH_SEPARATOR;
+/* This is all in libiberty filenames.h, but we can't include when IN_RTS, */ 
+#if defined(__MSDOS__) || defined(_WIN32) || defined(__EMX__) \
+    || defined (__CYGWIN__)
+#ifndef HAVE_DOS_BASED_FILE_SYSTEM
+#define HAVE_DOS_BASED_FILE_SYSTEM 1
+#endif
+#endif
+
+static __inline__ int
+__gnat_is_dir_separator (const char c)
+{
+#ifdef HAVE_DOS_BASED_FILE_SYSTEM
+  return (c == '/' ||  c == '\\');
+#else
+  return (c == '/' || c == DIR_SEPARATOR);
+#endif
+}
+
+const char __gnat_path_separator = PATH_SEPARATOR;
 
 /* The GNAT_LIBRARY_TEMPLATE contains a list of expressions that define
    the base filenames that libraries specified with -lsomelib options
@@ -366,7 +388,7 @@
   char full_path[256];
   int fd;
 
-  sprintf (full_path, "%s%c%s", dir, DIR_SEPARATOR, file);
+  sprintf (full_path, "%s%c%s", dir, __gnat_dir_separator, file);
   fd = open (full_path, O_CREAT | O_EXCL, 0600);
   if (fd < 0)
     return 0;
@@ -386,7 +408,7 @@
   char full_path[256];
   int fd;
 
-  sprintf (full_path, "%s%c%s", dir, DIR_SEPARATOR, file);
+  sprintf (full_path, "%s%c%s", dir, __gnat_dir_separator, file);
   fd = open (full_path, O_CREAT | O_EXCL, 0600);
   if (fd < 0)
     return 0;
@@ -408,7 +430,7 @@
   struct stat stat_result;
   int fd;
 
-  sprintf (full_path, "%s%c%s", dir, DIR_SEPARATOR, file);
+  sprintf (full_path, "%s%c%s", dir, __gnat_dir_separator, file);
   sprintf (temp_file, "%s-%ld-%ld", dir, (long) getpid(), (long) getppid ());
 
   /* Create the temporary file and write the process number.  */
@@ -482,9 +504,9 @@
 
    *length = strlen (dir);
 
-   if (dir [*length - 1] != DIR_SEPARATOR)
+   if (!__gnat_is_dir_separator (dir[*length - 1]))
      {
-       dir [*length] = DIR_SEPARATOR;
+       dir [*length] = __gnat_dir_separator;
        ++(*length);
      }
    dir[*length] = '\0';
@@ -1374,9 +1396,9 @@
 int
 __gnat_is_absolute_path (char *name)
 {
-  return (*name == '/' || *name == DIR_SEPARATOR
-#if defined (__EMX__) || defined (MSDOS) || defined (WINNT)
-      || (strlen (name) > 1 && isalpha (name[0]) && name[1] == ':')
+  return (__gnat_is_dir_separator (*name)
+#ifdef HAVE_DOS_BASED_FILE_SYSTEM
+	  || (name[0] && name[1] == ':')
 #endif
 	  );
 }
@@ -1853,7 +1875,7 @@
 
   /* If file_name include directory separator(s), try it first as
      a path name relative to the current directory */
-  for (ptr = file_name; *ptr && *ptr != '/' && *ptr != DIR_SEPARATOR; ptr++)
+  for (ptr = file_name; !__gnat_is_dir_separator (*ptr); ptr++)
     ;
 
   if (*ptr != 0)
@@ -1881,8 +1903,8 @@
         *ptr++ = *path_val++;
 
       ptr--;
-      if (*ptr != '/' && *ptr != DIR_SEPARATOR)
-        *++ptr = DIR_SEPARATOR;
+      if (!__gnat_is_dir_separator (*ptr))
+        *++ptr = __gnat_dir_separator;
 
       strcpy (++ptr, file_name);
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/ada/ctrl_c.c gcc-3.4.4-3/gcc/ada/ctrl_c.c
--- gcc-3.4.4-3-orig/gcc/ada/ctrl_c.c	2003-10-31 01:08:40.000000000 +0000
+++ gcc-3.4.4-3/gcc/ada/ctrl_c.c	2005-06-03 21:03:36.000000000 +0100
@@ -120,6 +120,7 @@
     case CTRL_SHUTDOWN_EVENT:
       break;
     }
+  return TRUE;
 }
 
 void
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/ada/expect.c gcc-3.4.4-3/gcc/ada/expect.c
--- gcc-3.4.4-3-orig/gcc/ada/expect.c	2003-10-31 01:08:42.000000000 +0000
+++ gcc-3.4.4-3/gcc/ada/expect.c	2005-06-03 21:03:36.000000000 +0100
@@ -80,7 +80,7 @@
 void
 __gnat_expect_portable_execvp (int *pid, char *cmd, char *argv[])
 {
-  *pid = (int) spawnve (_P_NOWAIT, cmd, argv, NULL);
+  *pid = (int) spawnve (_P_NOWAIT, cmd, (const char* const*)argv, NULL);
 }
 
 int
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/ada/mingw32.h gcc-3.4.4-3/gcc/ada/mingw32.h
--- gcc-3.4.4-3-orig/gcc/ada/mingw32.h	2003-10-22 08:59:32.000000000 +0100
+++ gcc-3.4.4-3/gcc/ada/mingw32.h	2005-06-03 21:03:36.000000000 +0100
@@ -49,6 +49,10 @@
 
 #define OLD_MINGW (!(STD_MINGW))
 
+#if (STD_MINGW)
+#define MAXPATHLEN PATH_MAX /* This matches define in sys/param.h.  */
+#else
 #define MAXPATHLEN MAX_PATH
+#endif
 
 #endif /* _MINGW32_H */
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/ada/mkdir.c gcc-3.4.4-3/gcc/ada/mkdir.c
--- gcc-3.4.4-3-orig/gcc/ada/mkdir.c	2003-10-31 01:08:44.000000000 +0000
+++ gcc-3.4.4-3/gcc/ada/mkdir.c	2006-05-13 17:35:16.000000000 +0100
@@ -51,7 +51,7 @@
 __gnat_mkdir (char *dir_name)
 {
 #if defined (_WIN32) || defined (__vxworks)
-  return mkdir (dir_name);
+  return (mkdir) (dir_name);
 #else
   return mkdir (dir_name, S_IRWXU | S_IRWXG | S_IRWXO);
 #endif
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/ada/s-stoele.ads gcc-3.4.4-3/gcc/ada/s-stoele.ads
--- gcc-3.4.4-3-orig/gcc/ada/s-stoele.ads	2003-10-21 14:42:14.000000000 +0100
+++ gcc-3.4.4-3/gcc/ada/s-stoele.ads	2005-06-03 21:03:36.000000000 +0100
@@ -82,7 +82,7 @@
    function "-" (Left : Address; Right : Storage_Offset) return Address;
    pragma Convention (Intrinsic, "-");
    pragma Inline_Always ("-");
-   pragma Pure_Function ("+");
+   pragma Pure_Function ("-");
 
    function "-" (Left, Right : Address) return Storage_Offset;
    pragma Convention (Intrinsic, "-");
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/c-format.c gcc-3.4.4-3/gcc/c-format.c
--- gcc-3.4.4-3-orig/gcc/c-format.c	2005-05-01 11:38:56.000000000 +0100
+++ gcc-3.4.4-3/gcc/c-format.c	2005-06-03 21:03:34.000000000 +0100
@@ -30,6 +30,7 @@
 #include "intl.h"
 #include "diagnostic.h"
 #include "langhooks.h"
+
 
 /* Set format warning options according to a -Wformat=n option.  */
 
@@ -514,6 +515,9 @@
   { "Z", FMT_LEN_z, STD_EXT, NULL, 0, 0 },
   { "t", FMT_LEN_t, STD_C99, NULL, 0, 0 },
   { "j", FMT_LEN_j, STD_C99, NULL, 0, 0 },
+#ifdef TARGET_EXTRA_PRINTF_LENGTH_SPECIFIERS
+  TARGET_EXTRA_PRINTF_LENGTH_SPECIFIERS,
+#endif /* TARGET_EXTRA_PRINTF_LENGTH_SPECIFIERS */
   { NULL, 0, 0, NULL, 0, 0 }
 };
 
@@ -547,6 +551,9 @@
   { "z", FMT_LEN_z, STD_C99, NULL, 0, 0 },
   { "t", FMT_LEN_t, STD_C99, NULL, 0, 0 },
   { "j", FMT_LEN_j, STD_C99, NULL, 0, 0 },
+#ifdef TARGET_EXTRA_PRINTF_LENGTH_SPECIFIERS
+  TARGET_EXTRA_PRINTF_LENGTH_SPECIFIERS,
+#endif /* TARGET_EXTRA_PRINTF_LENGTH_SPECIFIERS */
   { NULL, 0, 0, NULL, 0, 0 }
 };
 
@@ -917,11 +924,11 @@
   { NULL, 0, 0, NOLENGTHS, NULL, NULL }
 };
 
-
 /* This must be in the same order as enum format_type.  */
 static const format_kind_info format_types_orig[] =
 {
-  { "printf",   printf_length_specs,  print_char_table, " +#0-'I", NULL, 
+  { "printf",   printf_length_specs,  print_char_table,
+    " +#0-'" TARGET_EXTRA_PRINTF_FLAG_CHARS, NULL, 
     printf_flag_specs, printf_flag_pairs,
     FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK,
     'w', 0, 'p', 0, 'L',
@@ -951,7 +958,8 @@
     0, 0, 'p', 0, 'L',
     NULL, &integer_type_node
   },
-  { "scanf",    scanf_length_specs,   scan_char_table,  "*'I", NULL, 
+   { "scanf",    scanf_length_specs,   scan_char_table,
+    "*'" TARGET_EXTRA_PRINTF_FLAG_CHARS, NULL, 
     scanf_flag_specs, scanf_flag_pairs,
     FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK,
     'w', 0, 0, '*', 'L',
@@ -1929,7 +1937,13 @@
 	{
 	  while (fli->name != 0 && fli->name[0] != *format_chars)
 	    fli++;
-	  if (fli->name != 0)
+	  if (fli->name != 0
+#ifdef __MINGW32__
+	      /* Only accept "I64", not 'I' by itself.  */	
+	      && (format_chars[0] != 'I'
+		  || (format_chars[1] == '6' &&  format_chars[2] == '4'))
+#endif
+	     ) 
 	    {
 	      format_chars++;
 	      if (fli->double_name != 0 && fli->name[0] == *format_chars)
@@ -1941,6 +1955,10 @@
 		}
 	      else
 		{
+#ifdef __MINGW32__
+	          if (fli->name[0] == 'I')
+		    format_chars += 2;
+#endif
 		  length_chars = fli->name;
 		  length_chars_val = fli->index;
 		  length_chars_std = fli->std;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/c-incpath.c gcc-3.4.4-3/gcc/c-incpath.c
--- gcc-3.4.4-3-orig/gcc/c-incpath.c	2004-05-31 11:37:48.000000000 +0100
+++ gcc-3.4.4-3/gcc/c-incpath.c	2006-05-13 17:35:16.000000000 +0100
@@ -306,13 +306,18 @@
   struct cpp_dir *p;
 
 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Convert all backslashes to slashes.  The native CRT stat()
-     function does not recognise a directory that ends in a backslash
-     (unless it is a drive root dir, such "c:\").  Forward slashes,
-     trailing or otherwise, cause no problems for stat().  */
+  /* Remove unnecessary trailing slashes.  On some versions of MS
+     Windows, trailing  _forward_ slashes cause no problems for stat().
+     On newer versions, stat() does not recognise a directory that ends
+     in a '\\' or '/', unless it is a drive root dir, such "c:\").  */
   char* c;
   for (c = path; *c; c++)
     if (*c == '\\') *c = '/';
+  /* Strip trailing slashes, but preserve the lead '/' or a slash
+     that follows a ':' such as lead "c:/" or "//./c:/" */
+  c--;
+  for (; c > path && c[0] == '/' && c[-1] != ':'; c--)
+    *c = '\0';
 #endif
 
   p = xmalloc (sizeof (struct cpp_dir));
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/c-opts.c gcc-3.4.4-3/gcc/c-opts.c
--- gcc-3.4.4-3-orig/gcc/c-opts.c	2005-03-09 01:00:56.000000000 +0000
+++ gcc-3.4.4-3/gcc/c-opts.c	2005-06-03 21:03:34.000000000 +0100
@@ -29,6 +29,7 @@
 #include "flags.h"
 #include "toplev.h"
 #include "langhooks.h"
+#include "hosthooks.h"
 #include "tree-inline.h"
 #include "diagnostic.h"
 #include "intl.h"
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/c-pch.c gcc-3.4.4-3/gcc/c-pch.c
--- gcc-3.4.4-3-orig/gcc/c-pch.c	2004-03-24 22:27:54.000000000 +0000
+++ gcc-3.4.4-3/gcc/c-pch.c	2005-06-03 21:03:34.000000000 +0100
@@ -181,7 +181,6 @@
     fatal_error ("can't write %s: %m", pch_file);
   
   buf = xmalloc (16384);
-  fflush (asm_out_file);
 
   if (fseek (asm_out_file, asm_file_startpos, SEEK_SET) != 0)
     fatal_error ("can't seek in %s: %m", asm_file_name);
@@ -198,8 +197,9 @@
       written += size;
     }
   free (buf);
-  /* asm_out_file can be written afterwards, so must be flushed first.  */
-  fflush (asm_out_file);
+  /* asm_out_file can be written afterwards, so must
+     clear _IOREAD flags first.  */
+  fseek (asm_out_file, 0, SEEK_END);
 
   gt_pch_save (pch_outfile);
   cpp_write_pch_state (parse_in, pch_outfile);
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/calls.c gcc-3.4.4-3/gcc/calls.c
--- gcc-3.4.4-3-orig/gcc/calls.c	2005-04-06 22:01:44.000000000 +0100
+++ gcc-3.4.4-3/gcc/calls.c	2006-06-10 12:29:42.000000000 +0100
@@ -4215,7 +4215,16 @@
       /* Handle calls that pass values in multiple non-contiguous
 	 locations.  The PA64 has examples of this for library calls.  */
       if (reg != 0 && GET_CODE (reg) == PARALLEL)
+#ifndef GPC
 	emit_group_load (reg, val, NULL_TREE, GET_MODE_SIZE (GET_MODE (val)));
+#else
+        {
+          int valsize = GET_MODE_SIZE (GET_MODE (val));
+          if (valsize == 0 && GET_MODE (val) == VOIDmode)
+              valsize = GET_MODE_SIZE (GET_MODE (reg));
+          emit_group_load (reg, val, NULL_TREE, valsize);
+        }
+#endif /* GPC */
       else if (reg != 0 && partial == 0)
 	emit_move_insn (reg, val);
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/collect2.c gcc-3.4.4-3/gcc/collect2.c
--- gcc-3.4.4-3-orig/gcc/collect2.c	2005-01-10 15:25:24.000000000 +0000
+++ gcc-3.4.4-3/gcc/collect2.c	2006-05-13 17:35:16.000000000 +0100
@@ -30,24 +30,13 @@
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
+#include "pex-read.h"
+
 #include <signal.h>
 #if ! defined( SIGCHLD ) && defined( SIGCLD )
 #  define SIGCHLD SIGCLD
 #endif
 
-#ifdef vfork /* Autoconf may define this to fork for us.  */
-# define VFORK_STRING "fork"
-#else
-# define VFORK_STRING "vfork"
-#endif
-#ifdef HAVE_VFORK_H
-#include <vfork.h>
-#endif
-#ifdef VMS
-#define vfork() (decc$$alloc_vfork_blocks() >= 0 ? \
-               lib$get_current_invo_context(decc$$get_vfork_jmpbuf()) : -1)
-#endif /* VMS */
-
 #ifndef LIBRARY_PATH_ENV
 #define LIBRARY_PATH_ENV "LIBRARY_PATH"
 #endif
@@ -67,7 +56,6 @@
    cross-versions are in the proper directories.  */
 
 #ifdef CROSS_COMPILE
-#undef SUNOS4_SHARED_LIBRARIES
 #undef OBJECT_FORMAT_COFF
 #undef MD_EXEC_PREFIX
 #undef REAL_LD_FILE_NAME
@@ -140,7 +128,7 @@
   fprintf ((STREAM), "void _GLOBAL__DD() {\n\t%s();\n}\n", (FUNC))
 #endif
 
-#if defined (LDD_SUFFIX) || SUNOS4_SHARED_LIBRARIES
+#ifdef LDD_SUFFIX
 #define SCAN_LIBRARIES
 #endif
 
@@ -255,7 +243,9 @@
 static void add_prefix (struct path_prefix *, const char *);
 static void prefix_from_env (const char *, struct path_prefix *);
 static void prefix_from_string (const char *, struct path_prefix *);
+static int collect_status (const char *, int status);
 static void do_wait (const char *);
+static void do_read_wait (const char *, FILE *);
 static void fork_execute (const char *, char **);
 static void maybe_unlink (const char *);
 static void add_to_list (struct head *, const char *);
@@ -424,7 +414,11 @@
 #endif
 
   signal (signo, SIG_DFL);
+#if HAVE_KILL
   kill (getpid (), signo);
+#else
+  raise (signo);
+#endif
 }
 
 
@@ -1458,14 +1452,11 @@
 }
 
 
-/* Wait for a process to finish, and exit if a nonzero status is found.  */
+/* Handle error status returned by a finished process.  */
 
-int
-collect_wait (const char *prog)
+static int
+collect_status (const char *prog, int status)
 {
-  int status;
-
-  pwait (pid, &status, 0);
   if (status)
     {
       if (WIFSIGNALED (status))
@@ -1483,6 +1474,17 @@
   return 0;
 }
 
+/* Wait for a process to finish, and exit if a nonzero status is found.  */
+
+int
+collect_wait (const char *prog)
+{
+  int status;
+
+  pwait (pid, &status, 0);
+  return collect_status (prog, status);
+}
+
 static void
 do_wait (const char *prog)
 {
@@ -1494,6 +1496,19 @@
     }
 }
 
+static void
+do_read_wait (const char *prog, FILE *inf)
+{
+  int status;
+
+  pex_read_close (pid, inf, &status, 0);
+  status = collect_status (prog, status);
+  if (status != 0)
+    {
+      error ("%s returned %d exit status", prog, status);
+      collect_exit (status);
+    }
+}
 
 /* Execute a program, and wait for the reply.  */
 
@@ -1534,7 +1549,7 @@
   if (redir)
     {
       /* Open response file.  */
-      redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT);
+      redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT, S_IWUSR);
 
       /* Duplicate the stdout and stderr file handles
 	 so they can be restored later.  */
@@ -1993,13 +2008,16 @@
 scan_prog_file (const char *prog_name, enum pass which_pass)
 {
   void (*int_handler) (int);
+#ifdef SIGQUIT
   void (*quit_handler) (int);
+#endif
   char *real_nm_argv[4];
   const char **nm_argv = (const char **) real_nm_argv;
   int argc = 0;
-  int pipe_fd[2];
   char *p, buf[1024];
   FILE *inf;
+  char *errmsg_fmt;
+  char *errmsg_arg;
 
   if (which_pass == PASS_SECOND)
     return;
@@ -2015,13 +2033,6 @@
   nm_argv[argc++] = prog_name;
   nm_argv[argc++] = (char *) 0;
 
-  if (pipe (pipe_fd) < 0)
-    fatal_perror ("pipe");
-
-  inf = fdopen (pipe_fd[0], "r");
-  if (inf == (FILE *) 0)
-    fatal_perror ("fdopen");
-
   /* Trace if needed.  */
   if (vflag)
     {
@@ -2037,36 +2048,16 @@
   fflush (stdout);
   fflush (stderr);
 
-  /* Spawn child nm on pipe.  */
-  pid = vfork ();
-  if (pid == -1)
-    fatal_perror (VFORK_STRING);
-
-  if (pid == 0)			/* child context */
-    {
-      /* setup stdout */
-      if (dup2 (pipe_fd[1], 1) < 0)
-	fatal_perror ("dup2 %d 1", pipe_fd[1]);
-
-      if (close (pipe_fd[0]) < 0)
-	fatal_perror ("close %d", pipe_fd[0]);
-
-      if (close (pipe_fd[1]) < 0)
-	fatal_perror ("close %d", pipe_fd[1]);
-
-      execv (nm_file_name, real_nm_argv);
-      fatal_perror ("execv %s", nm_file_name);
-    }
+  inf = pex_read (nm_file_name, real_nm_argv, nm_file_name, NULL,
+		  &errmsg_fmt, &errmsg_arg, 0, &pid);
+  if (inf == (FILE *) 0)
+    fatal_perror (errmsg_fmt, errmsg_arg);
 
-  /* Parent context from here on.  */
   int_handler  = (void (*) (int)) signal (SIGINT,  SIG_IGN);
 #ifdef SIGQUIT
   quit_handler = (void (*) (int)) signal (SIGQUIT, SIG_IGN);
 #endif
 
-  if (close (pipe_fd[1]) < 0)
-    fatal_perror ("close %d", pipe_fd[1]);
-
   if (debug)
     fprintf (stderr, "\nnm output with constructors/destructors.\n");
 
@@ -2139,10 +2130,7 @@
   if (debug)
     fprintf (stderr, "\n");
 
-  if (fclose (inf) != 0)
-    fatal_perror ("fclose");
-
-  do_wait (nm_file_name);
+  do_read_wait (nm_file_name, inf);
 
   signal (SIGINT,  int_handler);
 #ifdef SIGQUIT
@@ -2150,269 +2138,6 @@
 #endif
 }
 
-#if SUNOS4_SHARED_LIBRARIES
-
-/* Routines to scan the SunOS 4 _DYNAMIC structure to find shared libraries
-   that the output file depends upon and their initialization/finalization
-   routines, if any.  */
-
-#include <a.out.h>
-#include <fcntl.h>
-#include <link.h>
-#include <sys/mman.h>
-#include <sys/param.h>
-#include <unistd.h>
-#include <sys/dir.h>
-
-/* pointers to the object file */
-unsigned object;	/* address of memory mapped file */
-unsigned objsize;	/* size of memory mapped to file */
-char * code;		/* pointer to code segment */
-char * data;		/* pointer to data segment */
-struct nlist *symtab;	/* pointer to symbol table */
-struct link_dynamic *ld;
-struct link_dynamic_2 *ld_2;
-struct head libraries;
-
-/* Map the file indicated by NAME into memory and store its address.  */
-
-static void
-mapfile (const char *name)
-{
-  int fp;
-  struct stat s;
-  if ((fp = open (name, O_RDONLY)) == -1)
-    fatal ("unable to open file '%s'", name);
-  if (fstat (fp, &s) == -1)
-    fatal ("unable to stat file '%s'", name);
-
-  objsize = s.st_size;
-  object = (unsigned) mmap (0, objsize, PROT_READ|PROT_WRITE, MAP_PRIVATE,
-			    fp, 0);
-  if (object == (unsigned)-1)
-    fatal ("unable to mmap file '%s'", name);
-
-  close (fp);
-}
-
-/* Helpers for locatelib.  */
-
-static const char *libname;
-
-static int
-libselect (struct direct *d)
-{
-  return (strncmp (libname, d->d_name, strlen (libname)) == 0);
-}
-
-/* If one file has an additional numeric extension past LIBNAME, then put
-   that one first in the sort.  If both files have additional numeric
-   extensions, then put the one with the higher number first in the sort.
-
-   We must verify that the extension is numeric, because Sun saves the
-   original versions of patched libraries with a .FCS extension.  Files with
-   invalid extensions must go last in the sort, so that they will not be used.  */
-
-static int
-libcompare (struct direct **d1, struct direct **d2)
-{
-  int i1, i2 = strlen (libname);
-  char *e1 = (*d1)->d_name + i2;
-  char *e2 = (*d2)->d_name + i2;
-
-  while (*e1 && *e2 && *e1 == '.' && *e2 == '.'
-	 && e1[1] && ISDIGIT (e1[1]) && e2[1] && ISDIGIT (e2[1]))
-    {
-      ++e1;
-      ++e2;
-      i1 = strtol (e1, &e1, 10);
-      i2 = strtol (e2, &e2, 10);
-      if (i1 != i2)
-	return i1 - i2;
-    }
-
-  if (*e1)
-    {
-      /* It has a valid numeric extension, prefer this one.  */
-      if (*e1 == '.' && e1[1] && ISDIGIT (e1[1]))
-	return 1;
-      /* It has an invalid numeric extension, must prefer the other one.  */
-      else
-	return -1;
-    }
-  else if (*e2)
-    {
-      /* It has a valid numeric extension, prefer this one.  */
-      if (*e2 == '.' && e2[1] && ISDIGIT (e2[1]))
-	return -1;
-      /* It has an invalid numeric extension, must prefer the other one.  */
-      else
-	return 1;
-    }
-  else
-    return 0;
-}
-
-/* Given the name NAME of a dynamic dependency, find its pathname and add
-   it to the list of libraries.  */
-
-static void
-locatelib (const char *name)
-{
-  static const char **l;
-  static int cnt;
-  char buf[MAXPATHLEN];
-  char *p, *q;
-  const char **pp;
-
-  if (l == 0)
-    {
-      char *ld_rules;
-      char *ldr = 0;
-      /* counting elements in array, need 1 extra for null */
-      cnt = 1;
-      ld_rules = (char *) (ld_2->ld_rules + code);
-      if (ld_rules)
-	{
-	  cnt++;
-	  for (; *ld_rules != 0; ld_rules++)
-	    if (*ld_rules == ':')
-	      cnt++;
-	  ld_rules = (char *) (ld_2->ld_rules + code);
-	  ldr = xstrdup (ld_rules);
-	}
-      p = getenv ("LD_LIBRARY_PATH");
-      q = 0;
-      if (p)
-	{
-	  cnt++;
-	  for (q = p ; *q != 0; q++)
-	    if (*q == ':')
-	      cnt++;
-	  q = xstrdup (p);
-	}
-      l = xmalloc ((cnt + 3) * sizeof (char *));
-      pp = l;
-      if (ldr)
-	{
-	  *pp++ = ldr;
-	  for (; *ldr != 0; ldr++)
-	    if (*ldr == ':')
-	      {
-		*ldr++ = 0;
-		*pp++ = ldr;
-	      }
-	}
-      if (q)
-	{
-	  *pp++ = q;
-	  for (; *q != 0; q++)
-	    if (*q == ':')
-	      {
-		*q++ = 0;
-		*pp++ = q;
-	      }
-	}
-      /* built in directories are /lib, /usr/lib, and /usr/local/lib */
-      *pp++ = "/lib";
-      *pp++ = "/usr/lib";
-      *pp++ = "/usr/local/lib";
-      *pp = 0;
-    }
-  libname = name;
-  for (pp = l; *pp != 0 ; pp++)
-    {
-      struct direct **namelist;
-      int entries;
-      if ((entries = scandir (*pp, &namelist, libselect, libcompare)) > 0)
-	{
-	  sprintf (buf, "%s/%s", *pp, namelist[entries - 1]->d_name);
-	  add_to_list (&libraries, buf);
-	  if (debug)
-	    fprintf (stderr, "%s\n", buf);
-	  break;
-	}
-    }
-  if (*pp == 0)
-    {
-      if (debug)
-	notice ("not found\n");
-      else
-	fatal ("dynamic dependency %s not found", name);
-    }
-}
-
-/* Scan the _DYNAMIC structure of the output file to find shared libraries
-   that it depends upon and any constructors or destructors they contain.  */
-
-static void
-scan_libraries (const char *prog_name)
-{
-  struct exec *header;
-  char *base;
-  struct link_object *lo;
-  char buff[MAXPATHLEN];
-  struct id *list;
-
-  mapfile (prog_name);
-  header = (struct exec *)object;
-  if (N_BADMAG (*header))
-    fatal ("bad magic number in file '%s'", prog_name);
-  if (header->a_dynamic == 0)
-    return;
-
-  code = (char *) (N_TXTOFF (*header) + (long) header);
-  data = (char *) (N_DATOFF (*header) + (long) header);
-  symtab = (struct nlist *) (N_SYMOFF (*header) + (long) header);
-
-  if (header->a_magic == ZMAGIC && header->a_entry == 0x20)
-    {
-      /* shared object */
-      ld = (struct link_dynamic *) (symtab->n_value + code);
-      base = code;
-    }
-  else
-    {
-      /* executable */
-      ld = (struct link_dynamic *) data;
-      base = code-PAGSIZ;
-    }
-
-  if (debug)
-    notice ("dynamic dependencies.\n");
-
-  ld_2 = (struct link_dynamic_2 *) ((long) ld->ld_un.ld_2 + (long)base);
-  for (lo = (struct link_object *) ld_2->ld_need; lo;
-       lo = (struct link_object *) lo->lo_next)
-    {
-      char *name;
-      lo = (struct link_object *) ((long) lo + code);
-      name = (char *) (code + lo->lo_name);
-      if (lo->lo_library)
-	{
-	  if (debug)
-	    fprintf (stderr, "\t-l%s.%d => ", name, lo->lo_major);
-	  sprintf (buff, "lib%s.so.%d.%d", name, lo->lo_major, lo->lo_minor);
-	  locatelib (buff);
-	}
-      else
-	{
-	  if (debug)
-	    fprintf (stderr, "\t%s\n", name);
-	  add_to_list (&libraries, name);
-	}
-    }
-
-  if (debug)
-    fprintf (stderr, "\n");
-
-  /* Now iterate through the library list adding their symbols to
-     the list.  */
-  for (list = libraries.first; list; list = list->next)
-    scan_prog_file (list->name, PASS_LIB);
-}
-
-#else  /* SUNOS4_SHARED_LIBRARIES */
 #ifdef LDD_SUFFIX
 
 /* Use the List Dynamic Dependencies program to find shared libraries that
@@ -2425,13 +2150,16 @@
   static struct head libraries;		/* list of shared libraries found */
   struct id *list;
   void (*int_handler) (int);
+#ifdef SIGQUIT
   void (*quit_handler) (int);
+#endif
   char *real_ldd_argv[4];
   const char **ldd_argv = (const char **) real_ldd_argv;
   int argc = 0;
-  int pipe_fd[2];
   char buf[1024];
   FILE *inf;
+  char *errmsg_fmt;
+  char *errmsg_arg;
 
   /* If we do not have an `ldd', complain.  */
   if (ldd_file_name == 0)
@@ -2466,26 +2194,10 @@
   fflush (stdout);
   fflush (stderr);
 
-  /* Spawn child ldd on pipe.  */
-  pid = vfork ();
-  if (pid == -1)
-    fatal_perror (VFORK_STRING);
-
-  if (pid == 0)			/* child context */
-    {
-      /* setup stdout */
-      if (dup2 (pipe_fd[1], 1) < 0)
-	fatal_perror ("dup2 %d 1", pipe_fd[1]);
-
-      if (close (pipe_fd[0]) < 0)
-	fatal_perror ("close %d", pipe_fd[0]);
-
-      if (close (pipe_fd[1]) < 0)
-	fatal_perror ("close %d", pipe_fd[1]);
-
-      execv (ldd_file_name, real_ldd_argv);
-      fatal_perror ("execv %s", ldd_file_name);
-    }
+  inf = pex_read (ldd_file_name, real_ldd_argv, ldd_file_name, NULL,
+		  &errmsg_fmt, &errmsg_arg, 0, &pid);
+  if (inf == (FILE *) 0)
+    fatal_perror (errmsg_fmt, errmsg_arg);
 
   /* Parent context from here on.  */
   int_handler  = (void (*) (int)) signal (SIGINT,  SIG_IGN);
@@ -2493,9 +2205,6 @@
   quit_handler = (void (*) (int)) signal (SIGQUIT, SIG_IGN);
 #endif
 
-  if (close (pipe_fd[1]) < 0)
-    fatal_perror ("close %d", pipe_fd[1]);
-
   if (debug)
     notice ("\nldd output with constructors/destructors.\n");
 
@@ -2532,10 +2241,7 @@
   if (debug)
     fprintf (stderr, "\n");
 
-  if (fclose (inf) != 0)
-    fatal_perror ("fclose");
-
-  do_wait (ldd_file_name);
+  do_read_wait (ldd_file_name, inf);
 
   signal (SIGINT,  int_handler);
 #ifdef SIGQUIT
@@ -2549,7 +2255,6 @@
 }
 
 #endif /* LDD_SUFFIX */
-#endif /* SUNOS4_SHARED_LIBRARIES */
 
 #endif /* OBJECT_FORMAT_NONE */
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/cygming.h gcc-3.4.4-3/gcc/config/i386/cygming.h
--- gcc-3.4.4-3-orig/gcc/config/i386/cygming.h	2004-06-08 07:30:14.000000000 +0100
+++ gcc-3.4.4-3/gcc/config/i386/cygming.h	2006-05-13 17:35:16.000000000 +0100
@@ -25,6 +25,27 @@
 #undef PREFERRED_DEBUGGING_TYPE
 #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
 
+#if 1 /* def HAVE_GAS_PE_SECREL32_RELOC */
+#define DWARF2_DEBUGGING_INFO 1
+
+#undef DBX_REGISTER_NUMBER
+#define DBX_REGISTER_NUMBER(n) (write_symbols == DWARF2_DEBUG   \
+                                ? svr4_dbx_register_map[n]      \
+                                : dbx_register_map[n])
+
+/* Use section relative relocations for debugging offsets.  Unlike
+   other targets that fake this by putting the section VMA at 0, PE
+   won't allow it.  */
+#define ASM_OUTPUT_DWARF_OFFSET(FILE, SIZE, LABEL)    \
+  do {                                                \
+    if (SIZE != 4)                                    \
+      abort ();                                       \
+                                                      \
+    fputs ("\t.secrel32\t", FILE);                    \
+    assemble_name (FILE, LABEL);                      \
+  } while (0)
+#endif
+
 #define TARGET_EXECUTABLE_SUFFIX ".exe"
 
 #define TARGET_IS_PE_COFF 1
@@ -156,7 +177,7 @@
       case in_readonly_data: readonly_data_section (); break;	\
       case in_named: named_section (decl, NULL, 0); break;	\
       case in_drectve: drectve_section (); break;		\
-      default: abort (); break;				\
+      default: abort (); break;					\
     }								\
 }
 
@@ -251,7 +272,7 @@
    unit may not be bound to undefined symbols in another translation unit
    without user intervention.  For instance, under Microsoft Windows
    symbols must be explicitly imported from shared libraries (DLLs).  */
-#define MULTIPLE_SYMBOL_SPACES
+#define MULTIPLE_SYMBOL_SPACES 1
 
 extern void i386_pe_unique_section (TREE, int);
 #define TARGET_ASM_UNIQUE_SECTION i386_pe_unique_section
@@ -308,7 +329,7 @@
 /* DWARF2 Unwinding doesn't work with exception handling yet.  To make
    it work, we need to build a libgcc_s.dll, and dcrt0.o should be
    changed to call __register_frame_info/__deregister_frame_info.  */
-#define DWARF2_UNWIND_INFO 0
+#define DWARF2_UNWIND_INFO 1
 
 /* Don't assume anything about the header files.  */
 #define NO_IMPLICIT_EXTERN_C
@@ -354,8 +375,10 @@
 #define BIGGEST_ALIGNMENT 128
 
 /* Native complier aligns internal doubles in structures on dword boundaries.  */
+#ifdef IN_TARGET_LIBS
 #undef	BIGGEST_FIELD_ALIGNMENT
 #define BIGGEST_FIELD_ALIGNMENT 64
+#endif
 
 /* A bit-field declared as `int' forces `int' alignment for the struct.  */
 #undef PCC_BITFIELD_TYPE_MATTERS
@@ -382,6 +405,9 @@
 	i386_pe_declare_function_type (STREAM, alias,			\
 				       TREE_PUBLIC (DECL));		\
       ASM_OUTPUT_DEF (STREAM, alias, IDENTIFIER_POINTER (TARGET));	\
+      if (i386_pe_dllexport_name_p (alias))				\
+	i386_pe_record_exported_symbol (alias,				\
+					TREE_CODE (DECL) == VAR_DECL);	\
     } while (0)
 
 #undef TREE
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/gmm_malloc.h gcc-3.4.4-3/gcc/config/i386/gmm_malloc.h
--- gcc-3.4.4-3-orig/gcc/config/i386/gmm_malloc.h	1970-01-01 00:00:00.000000000 +0000
+++ gcc-3.4.4-3/gcc/config/i386/gmm_malloc.h	2005-06-03 21:03:44.000000000 +0100
@@ -0,0 +1,77 @@
+/* Copyright (C) 2004 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 2, 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 COPYING.  If not, write to
+   the Free Software Foundation, 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, if you include this header file into source
+   files compiled by GCC, this header file does not by itself cause
+   the resulting executable to be covered by the GNU General Public
+   License.  This exception does not however invalidate any other
+   reasons why the executable file might be covered by the GNU General
+   Public License.  */
+
+#ifndef _MM_MALLOC_H_INCLUDED
+#define _MM_MALLOC_H_INCLUDED
+
+#include <stdlib.h>
+#include <errno.h>
+
+static __inline__ void* 
+_mm_malloc (size_t size, size_t align)
+{
+  void * malloc_ptr;
+  void * aligned_ptr;
+
+  /* Error if align is not a power of two.  */
+  if (align & (align - 1))
+    {
+      errno = EINVAL;
+      return ((void*) 0);
+    }
+
+  if (size == 0)
+    return ((void *) 0);
+
+ /* Assume malloc'd pointer is aligned at least to sizeof (void*).
+    If necessary, add another sizeof (void*) to store the value
+    returned by malloc. Effectively this enforces a minimum alignment
+    of sizeof double. */     
+    if (align < 2 * sizeof (void *))
+      align = 2 * sizeof (void *);
+
+  malloc_ptr = malloc (size + align);
+  if (!malloc_ptr)
+    return ((void *) 0);
+
+  /* Align  We have at least sizeof (void *) space below malloc'd ptr. */
+  aligned_ptr = (void *) (((size_t) malloc_ptr + align)
+			  & ~((size_t) (align) - 1));
+
+  /* Store the original pointer just before p.  */	
+  ((void **) aligned_ptr) [-1] = malloc_ptr;
+
+  return aligned_ptr;
+}
+
+static __inline__ void
+_mm_free (void * aligned_ptr)
+{
+  if (aligned_ptr)
+    free (((void **) aligned_ptr) [-1]);
+}
+
+#endif /* _MM_MALLOC_H_INCLUDED */
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/host-mingw32.c gcc-3.4.4-3/gcc/config/i386/host-mingw32.c
--- gcc-3.4.4-3-orig/gcc/config/i386/host-mingw32.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-3.4.4-3/gcc/config/i386/host-mingw32.c	2005-06-03 21:03:44.000000000 +0100
@@ -0,0 +1,159 @@
+/* mingw32 host-specific hook definitions.
+   Copyright (C) 2004 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 2, 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 COPYING.  If not, write to the
+   Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+   MA 02111-1307, USA.  */
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "hosthooks.h"
+#include "hosthooks-def.h"
+#include "toplev.h"
+#include "diagnostic.h"
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+static void * mingw32_gt_pch_get_address (size_t);
+static bool mingw32_gt_pch_use_address (void *, size_t);
+
+#undef HOST_HOOKS_GT_PCH_GET_ADDRESS
+#define HOST_HOOKS_GT_PCH_GET_ADDRESS mingw32_gt_pch_get_address
+#undef HOST_HOOKS_GT_PCH_USE_ADDRESS
+#define HOST_HOOKS_GT_PCH_USE_ADDRESS mingw32_gt_pch_use_address
+
+/* Get a few diagnostics.  */
+static inline void w32_perror(const char*, const char*, int, const char*);
+static inline void dump_mbi (FILE*, void *);
+
+/* FIXME: should this be set using physmem heuristics?  */
+static const size_t pch_VA_max_size  = 128 * 1024 * 1024;
+
+/* Pagesize for allocating memory.  */
+static const size_t pagesize = 0x1000;
+
+/* Granularity for reserving address space */
+static const size_t granularity = 0x10000;
+
+
+/* Print out the GetLastError() translation.  */ 
+static inline void
+w32_perror(const char* function, const char* file, int line,
+	   const char* my_msg)
+{
+  LPSTR w32_msgbuf;
+  FormatMessageA (FORMAT_MESSAGE_ALLOCATE_BUFFER
+		  | FORMAT_MESSAGE_FROM_SYSTEM
+		  | FORMAT_MESSAGE_IGNORE_INSERTS
+		  | FORMAT_MESSAGE_MAX_WIDTH_MASK,
+    		  NULL, GetLastError(),
+		  MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+		  (LPSTR) &w32_msgbuf, 0, NULL);
+  fprintf(stderr, "internal error in %s, at %s:%d: %s: %s\n",
+	  function, trim_filename (file), line, my_msg, w32_msgbuf);
+  LocalFree ((HLOCAL)w32_msgbuf);
+}
+
+static inline void dump_mbi (FILE* log, void * loc)
+{
+  MEMORY_BASIC_INFORMATION mbi;
+  VirtualQuery (loc, &mbi, sizeof (mbi));
+  fprintf (log,
+	   "BaseAddress: 0x%x\n"
+	   "AllocationBase: 0x%x\n"
+	   "RegionSize: 0x%x\n"
+	   "State: 0x%x\n"
+	   "Protect: 0x%x\n"
+	   "Type: 0x%x\n\n",
+  	   (unsigned) mbi.BaseAddress,
+	   (unsigned) mbi.AllocationBase,
+	   (unsigned) mbi.RegionSize,
+	   (unsigned) mbi.State,
+	   (unsigned) mbi.Protect,
+	   (unsigned) mbi.Type);
+}
+
+
+/* Return the address of the PCH address space, if the PCH will fit in it.  */
+static void *
+mingw32_gt_pch_get_address (size_t sz)
+{
+  void* res;
+  size_t rounded_sz = (sz + pagesize - 1) & ~(pagesize - 1);
+  if (rounded_sz > pch_VA_max_size)
+    return NULL;
+
+  /* FIXME: We let system determine base by setting first arg to NULL.
+     Allocating at top of available address space avoids unnecessary
+     fragmentation of "ordinary" (malloc's)  address space but may not be safe
+     with delayed load of system dll's. Preferred addresses for NT system
+     dlls is in 0x70000000 to 0x78000000 range.  */
+
+  res = VirtualAlloc (NULL, pch_VA_max_size,
+		      MEM_RESERVE | MEM_TOP_DOWN,
+		      PAGE_NOACCESS);
+  if (!res)
+    w32_perror (__FUNCTION__, __FILE__, __LINE__, "VirtualAlloc (reserve)");
+  else
+    /* We do not need the address space for now, so free it.  */
+    VirtualFree (res, 0, MEM_RELEASE);
+
+#ifdef PCH_DEBUG
+  fprintf (stderr,"'%s' setting address space for 0x%x bytes at base %p\n",
+	  __FUNCTION__, pch_VA_max_size, res);  
+#endif
+
+  return res; 
+}
+
+/* Check ADDR and SZ for validity and allocate  */
+
+static bool
+mingw32_gt_pch_use_address (void *addr, size_t sz)
+{
+  void * va_addr;
+
+  if (sz == 0)
+    return false;
+  
+
+   /* Round the size up to a whole page size.  Normally this is a no-op.  */
+  sz = (sz + pagesize - 1) & ~(pagesize - 1);
+
+
+  va_addr =  VirtualAlloc (addr, sz, MEM_RESERVE | MEM_COMMIT,
+			   PAGE_READWRITE);
+
+#ifdef PCH_DEBUG
+  fprintf (stderr, "'%s' committing 0x%x bytes at base %p\n",
+	   __FUNCTION__, sz, addr);
+  dump_mbi (stderr, addr);
+#endif
+
+
+  if (addr != va_addr)
+    {
+      w32_perror (__FUNCTION__, __FILE__, __LINE__, "VirtualAlloc (commit)");
+      return false;
+    }
+   
+   return true;   
+}
+
+const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER;
+
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/i386.c gcc-3.4.4-3/gcc/config/i386/i386.c
--- gcc-3.4.4-3-orig/gcc/config/i386/i386.c	2005-03-16 15:23:40.000000000 +0000
+++ gcc-3.4.4-3/gcc/config/i386/i386.c	2005-06-03 21:03:36.000000000 +0100
@@ -1586,6 +1586,13 @@
 	}
     }
 
+#ifdef TARGET_DLLIMPORT_DECL_ATTRIBUTES
+  /* Dllimport'd functions are also called indirectly.  */
+  if (decl && lookup_attribute ("dllimport", DECL_ATTRIBUTES (decl))
+      && ix86_function_regparm (TREE_TYPE (decl), NULL) >= 3)
+    return false;
+#endif
+
   /* Otherwise okay.  That also includes certain types of indirect calls.  */
   return true;
 }
@@ -5287,6 +5294,7 @@
       /* Only valid for Win32.  */
       rtx eax = gen_rtx_REG (SImode, 0);
       bool eax_live = ix86_eax_live_at_start_p ();
+      rtx t;
 
       if (TARGET_64BIT)
         abort ();
@@ -5297,15 +5305,24 @@
 	  allocate -= 4;
 	}
 
-      insn = emit_move_insn (eax, GEN_INT (allocate));
-      RTX_FRAME_RELATED_P (insn) = 1;
+      emit_move_insn (eax, GEN_INT (allocate));
 
       insn = emit_insn (gen_allocate_stack_worker (eax));
       RTX_FRAME_RELATED_P (insn) = 1;
+      t = gen_rtx_PLUS (Pmode, stack_pointer_rtx, GEN_INT (-allocate));
+      t = gen_rtx_SET (VOIDmode, stack_pointer_rtx, t);
+      REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR,
+					    t, REG_NOTES (insn));
 
       if (eax_live)
 	{
-	  rtx t = plus_constant (stack_pointer_rtx, allocate);
+	  if (frame_pointer_needed)
+	    t = plus_constant (hard_frame_pointer_rtx,
+			       allocate
+			       - frame.to_allocate
+			       - frame.nregs * UNITS_PER_WORD);
+	  else
+	    t = plus_constant (stack_pointer_rtx, allocate);
 	  emit_move_insn (eax, gen_rtx_MEM (SImode, t));
 	}
     }
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/i386.md gcc-3.4.4-3/gcc/config/i386/i386.md
--- gcc-3.4.4-3-orig/gcc/config/i386/i386.md	2005-05-10 22:04:28.000000000 +0100
+++ gcc-3.4.4-3/gcc/config/i386/i386.md	2005-06-03 21:03:36.000000000 +0100
@@ -1,3 +1,4 @@
+
 ;; GCC machine description for IA-32 and x86-64.
 ;; Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
 ;; 2001, 2002, 2003, 2004
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/mingw32-1.c gcc-3.4.4-3/gcc/config/i386/mingw32-1.c
--- gcc-3.4.4-3-orig/gcc/config/i386/mingw32-1.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-3.4.4-3/gcc/config/i386/mingw32-1.c	2005-06-03 21:03:44.000000000 +0100
@@ -0,0 +1,41 @@
+/* This replaces the use of stat and struct stat.st_ino to determine if
+   files are different in gcc.c (do_spec_1) handling of --save-temps
+   switch.
+   Contributed by Danny Smith (dannysmith@users.sourceforge.net)
+   Copyright 2003 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 2, 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 COPYING.  If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA.  */
+
+#include "config/i386/xm-mingw32.h"
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+/* Return non-zero if src and dst filenames do not refer to same files. */
+
+int
+w32_file_id_cmp (const char * src, const char * dst)
+{
+  char fullpath_src[MAX_PATH];
+  char fullpath_dst[MAX_PATH];
+  char* pfilename;
+
+ /* Just compare full pathnames, without regard to case. */
+  GetFullPathName (src, MAX_PATH, fullpath_src, &pfilename);
+  GetFullPathName (dst, MAX_PATH, fullpath_dst, &pfilename);
+  return  (lstrcmpi (fullpath_src, fullpath_dst));
+}
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/mingw32.h gcc-3.4.4-3/gcc/config/i386/mingw32.h
--- gcc-3.4.4-3-orig/gcc/config/i386/mingw32.h	2003-09-26 04:46:06.000000000 +0100
+++ gcc-3.4.4-3/gcc/config/i386/mingw32.h	2005-06-03 21:03:36.000000000 +0100
@@ -67,7 +67,11 @@
 
 #undef STARTFILE_SPEC
 #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \
-  %{!shared:%{!mdll:crt2%O%s}} %{pg:gcrt2%O%s}"
+  %{!shared:%{!mdll:crt2%O%s}} %{pg:gcrt2%O%s}  \
+  %{!fno-exceptions:crtbegin%O%s}"
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC "%{!fno-exceptions:crtend%O%s}"
 
 /* An additional prefix to try after the standard prefixes.  */
 #undef MD_STARTFILE_PREFIX
@@ -104,3 +108,15 @@
 /* Define as short unsigned for compatibility with MS runtime.  */
 #undef WINT_TYPE
 #define WINT_TYPE "short unsigned int"
+
+/* MSVCRT does not support the "I" flag provided by GLIBC.  */
+#undef TARGET_EXTRA_PRINTF_FLAG_CHARS
+#define TARGET_EXTRA_PRINTF_FLAG_CHARS ""
+
+/* MSVCRT supports additional length specifiers for "printf".  (In
+   fact, it does not support some of the C99 specifiers, like
+   "ll".  However, we do not presently have a mechanism for disabling
+   a specifier.)  */  
+#define TARGET_EXTRA_PRINTF_LENGTH_SPECIFIERS	\
+  /* 64-bit integer */				\
+  { "I64", FMT_LEN_ll,   STD_EXT, NULL, 0, 0 }
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/pmm_malloc.h gcc-3.4.4-3/gcc/config/i386/pmm_malloc.h
--- gcc-3.4.4-3-orig/gcc/config/i386/pmm_malloc.h	1970-01-01 00:00:00.000000000 +0000
+++ gcc-3.4.4-3/gcc/config/i386/pmm_malloc.h	2005-06-03 21:03:44.000000000 +0100
@@ -0,0 +1,56 @@
+/* Copyright (C) 2004 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 2, 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 COPYING.  If not, write to
+   the Free Software Foundation, 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, if you include this header file into source
+   files compiled by GCC, this header file does not by itself cause
+   the resulting executable to be covered by the GNU General Public
+   License.  This exception does not however invalidate any other
+   reasons why the executable file might be covered by the GNU General
+   Public License.  */
+
+#ifndef _MM_MALLOC_H_INCLUDED
+#define _MM_MALLOC_H_INCLUDED
+
+#include <stdlib.h>
+
+/* We can't depend on <stdlib.h> since the prototype of posix_memalign
+   may not be visible.  */
+extern int posix_memalign (void **, size_t, size_t);
+
+static __inline void *
+_mm_malloc (size_t size, size_t alignment)
+{
+  void *ptr;
+  if (alignment == 1)
+    return malloc (size);
+  if (alignment == 2 || (sizeof (void *) == 8 && alignment == 4))
+    alignment = sizeof (void *);
+  if (posix_memalign (&ptr, alignment, size) == 0)
+    return ptr;
+  else
+    return NULL;
+}
+
+static __inline void
+_mm_free (void * ptr)
+{
+  free (ptr);
+}
+
+#endif /* _MM_MALLOC_H_INCLUDED */
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/t-cygming gcc-3.4.4-3/gcc/config/i386/t-cygming
--- gcc-3.4.4-3-orig/gcc/config/i386/t-cygming	2003-09-23 19:56:00.000000000 +0100
+++ gcc-3.4.4-3/gcc/config/i386/t-cygming	2006-05-13 17:35:16.000000000 +0100
@@ -10,6 +10,8 @@
 # first.
 LIBGCC2_INCLUDES = -I$(srcdir)/../winsup/w32api/include
 
+LIB2FUNCS_EXTRA = $(srcdir)/config/i386/w32-shared-ptr.c
+
 winnt.o: $(srcdir)/config/i386/winnt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
   $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h output.h $(TREE_H) flags.h \
   $(TM_P_H) toplev.h $(HASHTAB_H) $(GGC_H)
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/t-gmm_malloc gcc-3.4.4-3/gcc/config/i386/t-gmm_malloc
--- gcc-3.4.4-3-orig/gcc/config/i386/t-gmm_malloc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-3.4.4-3/gcc/config/i386/t-gmm_malloc	2005-06-03 21:03:44.000000000 +0100
@@ -0,0 +1,6 @@
+# Install gmm_malloc.h as mm_malloc.h.
+
+EXTRA_HEADERS += mm_malloc.h
+mm_malloc.h: $(srcdir)/config/i386/gmm_malloc.h
+	rm -f $@
+	cat $^ > $@
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/t-mingw32 gcc-3.4.4-3/gcc/config/i386/t-mingw32
--- gcc-3.4.4-3-orig/gcc/config/i386/t-mingw32	2002-06-11 06:25:44.000000000 +0100
+++ gcc-3.4.4-3/gcc/config/i386/t-mingw32	2005-06-03 21:03:36.000000000 +0100
@@ -1,7 +1,8 @@
 #
 # collect2 doesn't work for i386-mingw32* yet.
 #
-USE_COLLECT2=
+#USE_COLLECT2=
 
 # We hide calls to w32api needed for w32 thread support here:
-LIB2FUNCS_EXTRA = $(srcdir)/config/i386/gthr-win32.c
+LIB2FUNCS_EXTRA += $(srcdir)/config/i386/gthr-win32.c
+
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/t-pmm_malloc gcc-3.4.4-3/gcc/config/i386/t-pmm_malloc
--- gcc-3.4.4-3-orig/gcc/config/i386/t-pmm_malloc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-3.4.4-3/gcc/config/i386/t-pmm_malloc	2005-06-03 21:03:44.000000000 +0100
@@ -0,0 +1,6 @@
+# Install pmm_malloc.h as mm_malloc.h.
+
+EXTRA_HEADERS += mm_malloc.h
+mm_malloc.h: $(srcdir)/config/i386/pmm_malloc.h
+	rm -f $@
+	cat $^ > $@
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/w32-shared-ptr.c gcc-3.4.4-3/gcc/config/i386/w32-shared-ptr.c
--- gcc-3.4.4-3-orig/gcc/config/i386/w32-shared-ptr.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-3.4.4-3/gcc/config/i386/w32-shared-ptr.c	2005-06-03 21:03:44.000000000 +0100
@@ -0,0 +1,248 @@
+/*
+ * w32-shared-ptr.c
+ *
+ * Share informations between EXE/DLLs without using an
+ * additional DLL.
+ *
+ * Contributors:
+ *  Created by Adriano dos Santos Fernandes <adrianosf@uol.com.br>
+ *  Enhanced by Thomas Pfaff <tpfaff@gmx.net>
+ *
+ *  THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ *  This source code is offered for use in the public domain. You may
+ *  use, modify or distribute it freely.
+ *
+ *  This code is distributed in the hope that it will be useful but
+ *  WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY
+ *  DISCLAMED. This includes but is not limited to warrenties of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifdef __MINGW32__
+#undef _CRTIMP
+#define _CRTIMP
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+#ifdef __CYGWIN__
+#include <unistd.h>
+#endif
+#ifdef DEBUG
+#include <stdio.h>
+#endif
+
+#include "tconfig.h"
+#include "tsystem.h"
+#include "gthr.h"
+
+#include "w32-shared-ptr.h"
+
+#if defined (__CYGWIN__) /* FIXME: This shouldn't be necessary. */
+typedef unsigned short ATOM;
+ATOM __attribute__ ((stdcall)) AddAtomA(const char*);
+ATOM __attribute__  ((stdcall)) FindAtomA(const char*);
+unsigned int __attribute__  ((stdcall)) GetAtomNameA(ATOM,char*,int);
+#else
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#endif
+
+#include <assert.h>
+
+W32_EH_SHARED *  __w32_sharedptr;
+
+void ** __w32_sharedptr_terminate;
+void ** __w32_sharedptr_unexpected;
+
+
+#define W32_ATOM_SUFFIX "-LIBGCCW32-EH"
+
+#define VERSION_SUFFIX "-2"
+
+#ifdef __USING_SJLJ_EXCEPTIONS__
+#define SJLJ_SUFFIX "-SJLJ"
+#else
+#define SJLJ_SUFFIX
+#endif
+
+#if __GTHREADS
+#define GTHR_SUFFIX "-GTHR"
+#else
+#define GTHR_SUFFIX
+#endif
+
+#ifdef __CYGWIN__
+#define SYS_SUFFIX "-CYGWIN"
+#else
+#define SYS_SUFFIX "-MINGW32"
+#endif
+
+static const char w32_atom_suffix[]
+  = W32_ATOM_SUFFIX VERSION_SUFFIX SJLJ_SUFFIX GTHR_SUFFIX SYS_SUFFIX;
+
+#define SHAREDPTR_BIT1          'A'
+#define SHAREDPTR_BIT0          'a'
+
+#define SHAREDPTR_BITS          (sizeof(W32_EH_SHARED*)*8)
+#define SHARED_ATOM_NAME_LEN    (SHAREDPTR_BITS + sizeof(w32_atom_suffix))
+
+static ATOM __w32_sharedptr_set (W32_EH_SHARED *w32_sharedptr);
+static W32_EH_SHARED * __w32_sharedptr_get (ATOM atom);
+static void __w32_sharedptr_default_unexpected(void);
+
+#ifdef __CYGWIN__
+static void __w32_sharedptr_fixup_after_fork (void);
+#endif
+
+static void __w32_sharedptr_default_unexpected(void)
+{
+  ((void(*)(void))__w32_sharedptr->terminate)();
+}
+
+static void __w32_eh_shared_initialize (W32_EH_SHARED *w32_sharedptr)
+{
+#ifdef __GTHREAD_MUTEX_INIT
+  static __gthread_mutex_t dw2_object_mutex = __GTHREAD_MUTEX_INIT;
+#else
+  static __gthread_mutex_t dw2_object_mutex;
+#endif
+#ifdef __GTHREAD_MUTEX_INIT_FUNCTION
+  static __gthread_once_t dw2_once = __GTHREAD_ONCE_INIT;
+#endif
+
+#ifdef __USING_SJLJ_EXCEPTIONS__ 
+#if __GTHREADS
+  static __gthread_key_t sjl_fc_key;
+  static __gthread_once_t sjl_once = __GTHREAD_ONCE_INIT;
+#endif
+#endif
+
+  memset (w32_sharedptr, 0, sizeof(W32_EH_SHARED));
+
+  w32_sharedptr->size = sizeof(W32_EH_SHARED);
+
+  w32_sharedptr->terminate = (void*)abort;
+  w32_sharedptr->unexpected = (void*)__w32_sharedptr_default_unexpected;
+
+  w32_sharedptr->dw2_object_mutex = dw2_object_mutex;
+#ifdef __GTHREAD_MUTEX_INIT_FUNCTION
+  w32_sharedptr->dw2_once = dw2_once;
+#endif
+
+#ifdef __USING_SJLJ_EXCEPTIONS__
+  w32_sharedptr->sjlj_fc_static = NULL;
+#if __GTHREADS
+  w32_sharedptr->sjlj_fc_key = sjl_fc_key;
+  w32_sharedptr->sjlj_use_fc_key = -1;
+  w32_sharedptr->sjlj_once = sjl_once;
+#endif
+#endif
+}
+
+void __w32_sharedptr_initialize (void) 
+{
+  W32_EH_SHARED *w32_sharedptr;
+  char s[SHARED_ATOM_NAME_LEN];
+  ATOM atom;
+
+  if (__w32_sharedptr)
+    return;
+
+  memset (s, SHAREDPTR_BIT1, SHAREDPTR_BITS);
+  memcpy (&(s[SHAREDPTR_BITS]), w32_atom_suffix, sizeof(w32_atom_suffix));
+
+  atom = FindAtomA (s);
+  if (atom)
+    w32_sharedptr = __w32_sharedptr_get (atom);
+  else
+    {
+      w32_sharedptr = (W32_EH_SHARED *) malloc (sizeof(W32_EH_SHARED));
+      if (!w32_sharedptr)
+        abort ();
+
+      __w32_eh_shared_initialize (w32_sharedptr);
+
+      if (__w32_sharedptr_set (w32_sharedptr))
+        {
+#ifdef __CYGWIN__
+          /* recreate atom after fork */
+          pthread_atfork (NULL,NULL,__w32_sharedptr_fixup_after_fork);
+#endif
+        }
+      else
+        {
+          free (w32_sharedptr);
+          w32_sharedptr = __w32_sharedptr_get (FindAtomA (s));
+        }
+    }
+
+  __w32_sharedptr_terminate  = &w32_sharedptr->terminate;
+  __w32_sharedptr_unexpected = &w32_sharedptr->unexpected;
+
+  /* THIS MUST BE THE LAST STEP */
+  __w32_sharedptr = w32_sharedptr;
+}
+
+static ATOM __w32_sharedptr_set (W32_EH_SHARED *w32_sharedptr)
+{
+  int i;
+  int bit;
+  char s[SHARED_ATOM_NAME_LEN];
+  ATOM atom;
+
+  /* This should optimize out entirely by O2 */
+  if (sizeof(bit) != sizeof(w32_sharedptr))
+    abort ();
+
+  for (i = SHAREDPTR_BITS - 1, bit = 1; i >= 0; --i, bit <<= 1)
+    s[i] = ((int)w32_sharedptr) & bit ? SHAREDPTR_BIT1 :
+      SHAREDPTR_BIT0;
+
+  memcpy (&(s[SHAREDPTR_BITS]), w32_atom_suffix, sizeof(w32_atom_suffix));
+
+  atom = AddAtomA (s);
+  /* Sanity check to avoid race by concurrent initialization */
+  if (!atom || __w32_sharedptr_get (atom) != w32_sharedptr)
+    return 0;
+
+#ifdef DEBUG
+  printf ("%s: set sharedptr: (%p):%s\n",
+          __FUNCTION__,w32_sharedptr, s);
+#endif
+
+  return atom;
+}
+
+static W32_EH_SHARED *__w32_sharedptr_get (ATOM atom)
+{
+  W32_EH_SHARED *w32_sharedptr;
+  int i;
+  int bit;
+  int address = 0;
+  char s[SHARED_ATOM_NAME_LEN];
+
+  /* If this fails something went wrong */
+   assert (GetAtomNameA (atom, s, sizeof(s)) != 0);
+
+  for (i = SHAREDPTR_BITS - 1, bit = 1; i >= 0; --i, bit <<= 1)
+    address |= s[i] == SHAREDPTR_BIT1 ? bit : 0;
+  w32_sharedptr = (W32_EH_SHARED*) address;
+
+  assert (w32_sharedptr->size == sizeof(W32_EH_SHARED));
+
+#ifdef DEBUG
+  printf ("%s: got sharedptr (%p): %s\n",
+          __FUNCTION__, w32_sharedptr, s);
+#endif
+  return w32_sharedptr;
+}
+
+#ifdef __CYGWIN__
+static void __w32_sharedptr_fixup_after_fork (void)
+{
+  assert (__w32_sharedptr_set (__w32_sharedptr) != 0);
+}
+#endif
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/w32-shared-ptr.h gcc-3.4.4-3/gcc/config/i386/w32-shared-ptr.h
--- gcc-3.4.4-3-orig/gcc/config/i386/w32-shared-ptr.h	1970-01-01 00:00:00.000000000 +0000
+++ gcc-3.4.4-3/gcc/config/i386/w32-shared-ptr.h	2005-06-03 21:03:44.000000000 +0100
@@ -0,0 +1,65 @@
+/*
+ * w32-shared-ptr.h
+ *
+ * Contributors:
+ *  Created by Thomas Pfaff <tpfaff@gmx.net>
+ *
+ *  THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ *  This source code is offered for use in the public domain. You may
+ *  use, modify or distribute it freely.
+ *
+ *  This code is distributed in the hope that it will be useful but
+ *  WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY
+ *  DISCLAMED. This includes but is not limited to warrenties of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef GCC_W32_SHARED_PTR_H
+#define GCC_W32_SHARED_PTR_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct
+{
+  int size;
+  
+  void *terminate;
+  void *unexpected;
+
+  void *dw2_unseen_objects;
+  void *dw2_seen_objects;
+  __gthread_mutex_t dw2_object_mutex;
+#ifdef __GTHREAD_MUTEX_INIT_FUNCTION
+  __gthread_once_t dw2_once;
+#endif
+  void *dw2_marker;
+
+#ifdef __USING_SJLJ_EXCEPTIONS__ 
+  void* sjlj_fc_static;
+#if __GTHREADS
+  __gthread_key_t sjlj_fc_key;
+  int sjlj_use_fc_key;
+  __gthread_once_t sjlj_once;
+#endif
+#endif
+
+} W32_EH_SHARED;
+
+extern W32_EH_SHARED *__w32_sharedptr;
+
+extern void ** __w32_sharedptr_terminate;
+extern void ** __w32_sharedptr_unexpected;
+
+extern void __w32_sharedptr_initialize (void);
+
+#define W32_SHAREDPTR_INITIALIZE()  if (!__w32_sharedptr) __w32_sharedptr_initialize ()
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/winnt.c gcc-3.4.4-3/gcc/config/i386/winnt.c
--- gcc-3.4.4-3-orig/gcc/config/i386/winnt.c	2004-03-23 23:18:32.000000000 +0000
+++ gcc-3.4.4-3/gcc/config/i386/winnt.c	2006-05-13 17:35:16.000000000 +0100
@@ -47,8 +47,7 @@
 */
 
 static tree associated_type (tree);
-static const char * gen_stdcall_suffix (tree);
-static const char * gen_fastcall_suffix (tree);
+static tree gen_stdcall_or_fastcall_suffix (tree, bool);
 static int i386_pe_dllexport_p (tree);
 static int i386_pe_dllimport_p (tree);
 static void i386_pe_mark_dllexport (tree);
@@ -262,7 +261,8 @@
 	}
 
       /*  Don't allow definitions of static data members in dllimport class,
-	  Just ignore attribute for vtable data.  */
+	  If vtable data is marked as DECL_EXTERNAL, import it; otherwise just
+          ignore the attribute.  */
       else if (TREE_CODE (decl) == VAR_DECL
 	       && TREE_STATIC (decl) && TREE_PUBLIC (decl)
 	       && !DECL_EXTERNAL (decl) && context_imp)
@@ -404,83 +404,56 @@
 }
 
 /* Return string which is the former assembler name modified with a
-   prefix consisting of FASTCALL_PREFIX and a suffix consisting of an
-   atsign (@) followed by the number of bytes of arguments.  */
-
-static const char *
-gen_fastcall_suffix (tree decl)
-{
-  int total = 0;
-  const char *asmname = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
-  char *newsym;
-
-  if (TYPE_ARG_TYPES (TREE_TYPE (decl)))
-    if (TREE_VALUE (tree_last (TYPE_ARG_TYPES (TREE_TYPE (decl))))
-        == void_type_node)
-      {
-	tree formal_type = TYPE_ARG_TYPES (TREE_TYPE (decl));
-
-	/* Quit if we hit an incomplete type.  Error is reported
-	   by convert_arguments in c-typeck.c or cp/typeck.c.  */
-	while (TREE_VALUE (formal_type) != void_type_node
-	       && COMPLETE_TYPE_P (TREE_VALUE (formal_type)))	
-	  {
-	    int parm_size
-	      = TREE_INT_CST_LOW (TYPE_SIZE (TREE_VALUE (formal_type)));
-	    /* Must round up to include padding.  This is done the same
-	       way as in store_one_arg.  */
-	    parm_size = ((parm_size + PARM_BOUNDARY - 1)
-			 / PARM_BOUNDARY * PARM_BOUNDARY);
-	    total += parm_size;
-	    formal_type = TREE_CHAIN (formal_type);
-	  }
-      }
-
-  /* Assume max of 8 base 10 digits in the suffix.  */
-  newsym = xmalloc (1 + strlen (asmname) + 1 + 8 + 1);
-  sprintf (newsym, "%c%s@%d", FASTCALL_PREFIX, asmname, total/BITS_PER_UNIT);
-  return IDENTIFIER_POINTER (get_identifier (newsym));
-}
-
-/* Return string which is the former assembler name modified with a
    suffix consisting of an atsign (@) followed by the number of bytes of
-   arguments */
+   arguments.  If FASTCALL is true, also add the FASTCALL_PREFIX.  */
 
-static const char *
-gen_stdcall_suffix (tree decl)
+static tree
+gen_stdcall_or_fastcall_suffix (tree decl, bool fastcall)
 {
   int total = 0;
   /* ??? This probably should use XSTR (XEXP (DECL_RTL (decl), 0), 0) instead
      of DECL_ASSEMBLER_NAME.  */
   const char *asmname = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
   char *newsym;
+  char *p;
+  tree formal_type;
 
-  if (TYPE_ARG_TYPES (TREE_TYPE (decl)))
-    if (TREE_VALUE (tree_last (TYPE_ARG_TYPES (TREE_TYPE (decl))))
-        == void_type_node)
-      {
-	tree formal_type = TYPE_ARG_TYPES (TREE_TYPE (decl));
+  /* Do not change the identifier if a verbatim asmspec or already done. */
+  if (*asmname == '*' || strchr (asmname, '@'))
+    return DECL_ASSEMBLER_NAME (decl);
 
-	/* Quit if we hit an incomplete type.  Error is reported
-	   by convert_arguments in c-typeck.c or cp/typeck.c.  */
-	while (TREE_VALUE (formal_type) != void_type_node
-	       && COMPLETE_TYPE_P (TREE_VALUE (formal_type)))	
-	  {
-	    int parm_size
-	      = TREE_INT_CST_LOW (TYPE_SIZE (TREE_VALUE (formal_type)));
+  formal_type = TYPE_ARG_TYPES (TREE_TYPE (decl));
+  if (formal_type != NULL_TREE)
+    {
+      /* These attributes are ignored for variadic functions in
+	 i386.c:ix86_return_pops_args. For compatibility with MS
+         compiler do not add @0 suffix here.  */ 
+      if (TREE_VALUE (tree_last (formal_type)) != void_type_node)
+        return DECL_ASSEMBLER_NAME (decl);
+
+      /* Quit if we hit an incomplete type.  Error is reported
+         by convert_arguments in c-typeck.c or cp/typeck.c.  */
+      while (TREE_VALUE (formal_type) != void_type_node
+	     && COMPLETE_TYPE_P (TREE_VALUE (formal_type)))	
+	{
+	  int parm_size
+	    = TREE_INT_CST_LOW (TYPE_SIZE (TREE_VALUE (formal_type)));
 	    /* Must round up to include padding.  This is done the same
 	       way as in store_one_arg.  */
-	    parm_size = ((parm_size + PARM_BOUNDARY - 1)
-			 / PARM_BOUNDARY * PARM_BOUNDARY);
-	    total += parm_size;
-	    formal_type = TREE_CHAIN (formal_type);
-	  }
-      }
+	  parm_size = ((parm_size + PARM_BOUNDARY - 1)
+		       / PARM_BOUNDARY * PARM_BOUNDARY);
+	  total += parm_size;
+	  formal_type = TREE_CHAIN (formal_type);\
+	}
+     }
 
   /* Assume max of 8 base 10 digits in the suffix.  */
-  newsym = xmalloc (strlen (asmname) + 1 + 8 + 1);
-  sprintf (newsym, "%s@%d", asmname, total/BITS_PER_UNIT);
-  return IDENTIFIER_POINTER (get_identifier (newsym));
+  newsym = alloca (1 + strlen (asmname) + 1 + 8 + 1);
+  p = newsym;
+  if (fastcall)
+    *p++ = FASTCALL_PREFIX;
+  sprintf (p, "%s@%d", asmname, total/BITS_PER_UNIT);
+  return get_identifier (newsym);
 }
 
 void
@@ -488,16 +461,29 @@
 {
   default_encode_section_info (decl, rtl, first);
 
-  if (TREE_CODE (decl) == FUNCTION_DECL)
+  if (first && TREE_CODE (decl) == FUNCTION_DECL)
     {
-      if (lookup_attribute ("stdcall",
-			    TYPE_ATTRIBUTES (TREE_TYPE (decl))))
-        XEXP (DECL_RTL (decl), 0) =
-	  gen_rtx (SYMBOL_REF, Pmode, gen_stdcall_suffix (decl));
-      else if (lookup_attribute ("fastcall",
-				 TYPE_ATTRIBUTES (TREE_TYPE (decl))))
-        XEXP (DECL_RTL (decl), 0) =
-	  gen_rtx (SYMBOL_REF, Pmode, gen_fastcall_suffix (decl));
+      tree type_attributes = TYPE_ATTRIBUTES (TREE_TYPE (decl));
+      tree newid = NULL_TREE;
+
+      if (lookup_attribute ("stdcall", type_attributes))
+	newid = gen_stdcall_or_fastcall_suffix (decl, false);
+      else if (lookup_attribute ("fastcall", type_attributes))
+	newid = gen_stdcall_or_fastcall_suffix (decl, true);
+      if (newid != NULL_TREE) 	
+	{
+	  rtx rtlname = XEXP (rtl, 0);
+	  if (GET_CODE (rtlname) == MEM)
+	    rtlname = XEXP (rtlname, 0);
+	  XSTR (rtlname, 0) = IDENTIFIER_POINTER (newid);
+#if 0
+	  /* These attributes must be present on first declaration,
+	     change_decl_assembler_name will warn if they are added
+	     later and the decl has been referenced, but duplicate_decls
+	     should catch the mismatch before this is called.  */ 
+          change_decl_assembler_name (decl, newid);
+#endif
+	}
     }
 
   /* Mark the decl so we can tell from the rtl whether the object is
@@ -559,7 +545,7 @@
   return str;
 }
 
-/* Also strip the stdcall suffix.  */
+/* Also strip the fastcall prefix and stdcall suffix.  */
 
 const char *
 i386_pe_strip_name_encoding_full (const char *str)
@@ -567,6 +553,11 @@
   const char *p;
   const char *name = i386_pe_strip_name_encoding (str);
 
+  /* Strip leading '@' on fastcall symbols.  */
+  if (*name == '@')
+    name++;
+
+  /* Strip trailing '@n'.  */
   p = strchr (name, '@');
   if (p)
     return ggc_alloc_string (name, p - name);
@@ -598,9 +589,9 @@
         }
     }
   else if ((name[0] == FASTCALL_PREFIX)
-           || (strncmp (name, DLL_EXPORT_PREFIX, strlen (DLL_EXPORT_PREFIX)
+           || (strncmp (name, DLL_EXPORT_PREFIX, strlen (DLL_EXPORT_PREFIX))
 	       == 0
-	       && name[strlen (DLL_EXPORT_PREFIX)] == FASTCALL_PREFIX)))
+	       && name[strlen (DLL_EXPORT_PREFIX)] == FASTCALL_PREFIX))
     /* A fastcall symbol.  */
     {
       fprintf (stream, "%s",
@@ -764,13 +755,13 @@
 
 /* Keep a list of external functions.  */
 
-struct extern_list
+struct extern_list GTY(())
 {
   struct extern_list *next;
   const char *name;
 };
 
-static struct extern_list *extern_head;
+static GTY(()) struct extern_list *extern_head;
 
 /* Assemble an external function reference.  We need to keep a list of
    these, so that we can output the function types at the end of the
@@ -783,7 +774,7 @@
 {
   struct extern_list *p;
 
-  p = (struct extern_list *) xmalloc (sizeof *p);
+  p = (struct extern_list *) ggc_alloc (sizeof *p);
   p->next = extern_head;
   p->name = name;
   extern_head = p;
@@ -791,14 +782,14 @@
 
 /* Keep a list of exported symbols.  */
 
-struct export_list
+struct export_list GTY(())
 {
   struct export_list *next;
   const char *name;
   int is_data;		/* used to type tag exported symbols.  */
 };
 
-static struct export_list *export_head;
+static GTY(()) struct export_list *export_head;
 
 /* Assemble an export symbol entry.  We need to keep a list of
    these, so that we can output the export list at the end of the
@@ -811,7 +802,7 @@
 {
   struct export_list *p;
 
-  p = (struct export_list *) xmalloc (sizeof *p);
+  p = (struct export_list *) ggc_alloc (sizeof *p);
   p->next = export_head;
   p->name = name;
   p->is_data = is_data;
@@ -828,21 +819,21 @@
   struct extern_list *p;
 
   ix86_file_end ();
+  if (write_symbols != SDB_DEBUG)
+    for (p = extern_head; p != NULL; p = p->next)
+      {
+	tree decl;
 
-  for (p = extern_head; p != NULL; p = p->next)
-    {
-      tree decl;
-
-      decl = get_identifier (p->name);
+	decl = get_identifier (p->name);
 
-      /* Positively ensure only one declaration for any given symbol.  */
-      if (! TREE_ASM_WRITTEN (decl) && TREE_SYMBOL_REFERENCED (decl))
-	{
-	  TREE_ASM_WRITTEN (decl) = 1;
-	  i386_pe_declare_function_type (asm_out_file, p->name,
-					 TREE_PUBLIC (decl));
-	}
-    }
+	/* Positively ensure only one declaration for any given symbol.  */
+	if (! TREE_ASM_WRITTEN (decl) && TREE_SYMBOL_REFERENCED (decl))
+	  {
+	    TREE_ASM_WRITTEN (decl) = 1;
+	    i386_pe_declare_function_type (asm_out_file, p->name,
+					   TREE_PUBLIC (decl));
+	  }
+      }
 
   if (export_head)
     {
@@ -856,3 +847,5 @@
 	}
     }
 }
+
+#include "gt-winnt.h"
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/x-mingw32 gcc-3.4.4-3/gcc/config/i386/x-mingw32
--- gcc-3.4.4-3-orig/gcc/config/i386/x-mingw32	2003-05-28 22:06:24.000000000 +0100
+++ gcc-3.4.4-3/gcc/config/i386/x-mingw32	2006-05-13 17:35:16.000000000 +0100
@@ -2,3 +2,31 @@
 # Make local_includedir relative to EXEC_PREFIX 
 #
 local_includedir=$(libsubdir)/$(unlibsubdir)/..`echo $(exec_prefix) | sed -e 's|^$(prefix)||' -e 's|/[^/]*|/..|g'`/include
+
+#
+# host runtime lib's printf uses 'I64' format specifier prefix instead
+# of 'll' for HOST_WIDEST_INT_PRINT_*. See hwint.h.
+# Avoid warnings while bootstrapping.
+#
+bt-load.o-warn = -Wno-format
+cfg.o-warn = -Wno-format
+gcov-dump.o-warn = -Wno-format
+gcov.o-warn = -Wno-format
+loop-unroll.o-warn = -Wno-format
+predict.o-warn = -Wno-format
+profile.o-warn = -Wno-format
+
+#
+# For HOST_FILE_ID_CMP for mingw32.  
+#
+EXTRA_GCC_OBJS = mingw32-1.o
+
+mingw32-1.o: $(srcdir)/config/i386/mingw32-1.c \
+  $(srcdir)/config/i386/xm-mingw32.h
+	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+	$(srcdir)/config/i386/mingw32-1.c
+
+host-mingw32.o : $(srcdir)/config/i386/host-mingw32.c $(CONFIG_H) $(SYSTEM_H) \
+  coretypes.h hosthooks.h hosthooks-def.h toplev.h diagnostic.h
+	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+		$(srcdir)/config/i386/host-mingw32.c
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/xm-mingw32.h gcc-3.4.4-3/gcc/config/i386/xm-mingw32.h
--- gcc-3.4.4-3-orig/gcc/config/i386/xm-mingw32.h	2004-01-31 06:18:24.000000000 +0000
+++ gcc-3.4.4-3/gcc/config/i386/xm-mingw32.h	2006-05-13 17:35:16.000000000 +0100
@@ -27,3 +27,12 @@
 
 /* This is the name of the null device on windows.  */
 #define HOST_BIT_BUCKET "nul"
+
+/* Override the default of "ll" in hwint.t.  */
+#define HOST_LL_PREFIX "I64"
+
+/* This replaces the use of stat to determine if files are different
+   in gcc.c (do_spec_1) handling of --save-temps switch.  */
+extern int
+w32_file_id_cmp (const char *, const char *);
+#define HOST_FILE_ID_CMP(SRC,DST) w32_file_id_cmp (SRC, DST)
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/i386/xmmintrin.h gcc-3.4.4-3/gcc/config/i386/xmmintrin.h
--- gcc-3.4.4-3-orig/gcc/config/i386/xmmintrin.h	2004-10-14 00:29:06.000000000 +0100
+++ gcc-3.4.4-3/gcc/config/i386/xmmintrin.h	2005-06-03 21:03:36.000000000 +0100
@@ -37,6 +37,9 @@
 /* We need type definitions from the MMX header file.  */
 #include <mmintrin.h>
 
+/* Get _mm_malloc () and _mm_free ().  */
+#include <mm_malloc.h>
+
 /* The data type intended for user use.  */
 typedef float __m128 __attribute__ ((__mode__(__V4SF__)));
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config/rs6000/rs6000.c gcc-3.4.4-3/gcc/config/rs6000/rs6000.c
--- gcc-3.4.4-3-orig/gcc/config/rs6000/rs6000.c	2005-04-29 01:32:00.000000000 +0100
+++ gcc-3.4.4-3/gcc/config/rs6000/rs6000.c	2005-06-03 23:16:56.000000000 +0100
@@ -13007,7 +13007,8 @@
 	 use language_string.
 	 C is 0.  Fortran is 1.  Pascal is 2.  Ada is 3.  C++ is 9.
 	 Java is 13.  Objective-C is 14.  */
-      if (! strcmp (language_string, "GNU C"))
+      if (! strcmp (language_string, "GNU C") ||
+	  ! strcmp (language_string, "GNU D"))
 	i = 0;
       else if (! strcmp (language_string, "GNU F77"))
 	i = 1;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config.gcc gcc-3.4.4-3/gcc/config.gcc
--- gcc-3.4.4-3-orig/gcc/config.gcc	2005-04-25 05:48:00.000000000 +0100
+++ gcc-3.4.4-3/gcc/config.gcc	2006-05-13 17:35:16.000000000 +0100
@@ -1158,6 +1158,7 @@
 	;;
 i[34567]86-*-pe | i[34567]86-*-cygwin*)
 	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h"
+	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
 	xm_file=i386/xm-cygwin.h
 	tmake_file="i386/t-cygwin i386/t-cygming"
 	extra_objs=winnt.o
@@ -1171,8 +1172,11 @@
 i[34567]86-*-mingw32*)
 	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/mingw32.h"
 	xm_file=i386/xm-mingw32.h
-	tmake_file="i386/t-cygming i386/t-mingw32"
+	tmake_file="i386/t-cygming i386/t-mingw32 i386/t-crtstuff"
+	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
 	extra_objs=winnt.o
+	extra_parts="crtbegin.o crtend.o"
+	target_cpu_default=TARGET_CPU_DEFAULT_pentiumpro
 	if test x$enable_threads = xyes; then
 		thread_file='win32'
 	fi
@@ -1187,6 +1191,7 @@
 i[34567]86-*-uwin*)
 	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygwin.h i386/uwin.h"
 	tmake_file="i386/t-cygwin i386/t-uwin"
+	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
 	extra_objs=winnt.o
 	if test x$enable_threads = xyes; then
 		thread_file='win32'
@@ -1197,6 +1202,7 @@
 	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h i386/i386-interix3.h interix.h interix3.h"
 	tmake_file="i386/t-interix"
 	extra_objs=winnt.o
+	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
 	if test x$enable_threads = xyes ; then
 		thread_file='posix'
 	fi
@@ -2316,6 +2322,18 @@
 	;;
 esac
 
+case ${target} in
+i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
+	tmake_file="${tmake_file} i386/t-gmm_malloc"
+	;;
+i[34567]86-*-linux* | x86_64-*-linux*)
+	tmake_file="${tmake_file} i386/t-pmm_malloc"
+	;;
+i[34567]86-*-* | x86_64-*-*)
+	tmake_file="${tmake_file} i386/t-gmm_malloc"
+	;;
+esac
+
 # Support for --with-cpu and related options (and a few unrelated options,
 # too).
 case ${with_cpu} in
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/config.host gcc-3.4.4-3/gcc/config.host
--- gcc-3.4.4-3-orig/gcc/config.host	2003-10-14 04:41:42.000000000 +0100
+++ gcc-3.4.4-3/gcc/config.host	2006-05-13 17:35:16.000000000 +0100
@@ -135,7 +135,9 @@
     host_xm_file=i386/xm-mingw32.h
     host_xmake_file=i386/x-mingw32
     host_exeext=.exe
-    ;;
+    host_extra_gcc_objs=mingw32-1.o
+    out_host_hook_obj=host-mingw32.o
+     ;;
   i[34567]86-*-uwin*)
     echo "*** UWIN may not be used as a host platform because"
     echo "*** linking with posix.dll is not allowed by the GNU GPL."
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/cp/decl.c gcc-3.4.4-3/gcc/cp/decl.c
--- gcc-3.4.4-3-orig/gcc/cp/decl.c	2005-03-19 14:00:46.000000000 +0000
+++ gcc-3.4.4-3/gcc/cp/decl.c	2006-05-13 17:35:16.000000000 +0100
@@ -5488,6 +5488,7 @@
     {
       tree itype;
       tree domain;
+      tree elt_type;
 
       domain = build_index_type (maxindex);
       TYPE_DOMAIN (type) = domain;
@@ -5505,6 +5506,12 @@
 	 size of the array.  */
       if (! TYPE_DOMAIN (TYPE_MAIN_VARIANT (type)))
 	TYPE_DOMAIN (TYPE_MAIN_VARIANT (type)) = domain;
+
+      elt_type = TREE_TYPE (type);
+      TYPE_NEEDS_CONSTRUCTING (type)
+	= TYPE_NEEDS_CONSTRUCTING (TYPE_MAIN_VARIANT (elt_type));
+      TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type)
+	= TYPE_HAS_NONTRIVIAL_DESTRUCTOR (TYPE_MAIN_VARIANT (elt_type));      
     }
 
   /* Lay out the type now that we can get the real answer.  */
@@ -10482,11 +10489,18 @@
 	 So clear DECL_EXTERNAL.  */
       DECL_EXTERNAL (decl1) = 0;
 
-      if ((DECL_DECLARED_INLINE_P (decl1) 
-	   || DECL_TEMPLATE_INSTANTIATION (decl1))
-	  && ! DECL_INTERFACE_KNOWN (decl1)
-	  /* Don't try to defer nested functions for now.  */
-	  && ! decl_function_context (decl1))
+      /* Don't defer inline functions if told to keep them.  */
+      if (flag_keep_inline_functions && DECL_DECLARED_INLINE_P (decl1))
+	{
+	  if (TREE_PUBLIC (decl1))
+	    maybe_make_one_only (decl1);
+	  DECL_INTERFACE_KNOWN (decl1) = 1;
+	}
+      else if ((DECL_DECLARED_INLINE_P (decl1)
+		|| DECL_TEMPLATE_INSTANTIATION (decl1))
+	       && ! DECL_INTERFACE_KNOWN (decl1)
+	       /* Don't try to defer nested functions for now.  */
+	       && ! decl_function_context (decl1))
 	DECL_DEFER_OUTPUT (decl1) = 1;
       else
 	DECL_INTERFACE_KNOWN (decl1) = 1;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/cp/decl2.c gcc-3.4.4-3/gcc/cp/decl2.c
--- gcc-3.4.4-3-orig/gcc/cp/decl2.c	2004-10-11 15:42:36.000000000 +0100
+++ gcc-3.4.4-3/gcc/cp/decl2.c	2005-06-03 21:03:36.000000000 +0100
@@ -1476,6 +1476,11 @@
 	{
 	  TREE_PUBLIC (decl) = 1;
 	  DECL_EXTERNAL (decl) = 1;
+	  /* If found and the class has dllimport attribute, commit to
+	     marking the vtable as dllimport, We don't want to change
+	     linkage when maybe_emit_vtable  calls this with final true. */
+	  if (lookup_attribute ("dllimport", TYPE_ATTRIBUTES (type))) 
+	    DECL_INTERFACE_KNOWN (decl) = 1;
 	}
     }
 }
@@ -1736,13 +1741,21 @@
   
   if (IS_AGGR_TYPE (type))
     import_export_class (type);
-      
+
   if (IS_AGGR_TYPE (type) && CLASSTYPE_INTERFACE_KNOWN (type)
       && TYPE_POLYMORPHIC_P (type)
       /* If -fno-rtti, we're not necessarily emitting this stuff with
 	 the class, so go ahead and emit it now.  This can happen when
 	 a class is used in exception handling.  */
-      && flag_rtti)
+      && flag_rtti
+#ifdef MULTIPLE_SYMBOL_SPACES
+     /* 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.   */
+      && !lookup_attribute ("dllimport", TYPE_ATTRIBUTES (type))
+#endif
+      )
     {
       DECL_NOT_REALLY_EXTERN (decl) = !CLASSTYPE_INTERFACE_ONLY (type);
       DECL_COMDAT (decl) = 0;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/cp/method.c gcc-3.4.4-3/gcc/cp/method.c
--- gcc-3.4.4-3-orig/gcc/cp/method.c	2005-05-09 12:48:02.000000000 +0100
+++ gcc-3.4.4-3/gcc/cp/method.c	2006-05-13 17:35:16.000000000 +0100
@@ -324,7 +324,19 @@
   SET_DECL_ASSEMBLER_NAME (alias, DECL_NAME (alias));
   TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (alias)) = 1;
   if (!flag_syntax_only)
+    {
+      /* Using DECL_ASSEMBLER_NAME to get the identifier for the alias
+	 target loses any decoration that targetm.encode_section_info
+	 may have added.  Use the RTL string instead.  */
+      rtx rtlname = DECL_RTL (function);
+      my_friendly_assert (GET_CODE (rtlname) == MEM, 20040705);
+      rtlname = XEXP (rtlname, 0);
+      my_friendly_assert (GET_CODE (rtlname) == SYMBOL_REF, 20040705);
+      assemble_alias (alias, get_identifier(XSTR (rtlname, 0)));
+   }
+/*
     assemble_alias (alias, DECL_ASSEMBLER_NAME (function));
+*/
   return alias;
 }
 #endif
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/cp/parser.c gcc-3.4.4-3/gcc/cp/parser.c
--- gcc-3.4.4-3-orig/gcc/cp/parser.c	2005-04-05 00:43:48.000000000 +0100
+++ gcc-3.4.4-3/gcc/cp/parser.c	2006-05-13 17:35:16.000000000 +0100
@@ -9320,11 +9320,11 @@
 	     declaration context.  */
 
  	  /* Warn about attributes. They are ignored.  */
- 	  if (attributes)
+ 	  if (attributes && extra_warnings)
 	    warning ("type attributes are honored only at type definition");
 
-	  type = xref_tag (tag_type, identifier, 
-			   (is_friend 
+	  type = xref_tag (tag_type, identifier,
+			   (is_friend
 			    || !is_declaration
 			    || cp_lexer_next_token_is_not (parser->lexer, 
 							   CPP_SEMICOLON)),
@@ -12032,7 +12032,7 @@
    body of the class.  */
 
 static tree
-cp_parser_class_head (cp_parser* parser, 
+cp_parser_class_head (cp_parser* parser,
 		      bool* nested_name_specifier_p,
 		      tree *attributes_p)
 {
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/cp/repo.c gcc-3.4.4-3/gcc/cp/repo.c
--- gcc-3.4.4-3-orig/gcc/cp/repo.c	2003-12-19 23:28:10.000000000 +0000
+++ gcc-3.4.4-3/gcc/cp/repo.c	2006-05-13 17:35:16.000000000 +0100
@@ -1,5 +1,5 @@
 /* Code to maintain a C++ template repository.
-   Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003
+   Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
    Contributed by Jason Merrill (jason@cygnus.com)
 
@@ -53,8 +53,8 @@
 
 static struct obstack temporary_obstack;
 
-#define IDENTIFIER_REPO_USED(NODE)   (TREE_LANG_FLAG_3 (NODE))
-#define IDENTIFIER_REPO_CHOSEN(NODE) (TREE_LANG_FLAG_4 (NODE))
+#define IDENTIFIER_REPO_USED(NODE)   (TREE_LANG_FLAG_5 (NODE))
+#define IDENTIFIER_REPO_CHOSEN(NODE) (TREE_LANG_FLAG_6 (NODE))
 
 #if 0
 /* Record the flags used to compile this translation unit.  */
@@ -218,7 +218,10 @@
 	break;
       ++p;
       if (backquote)
-	obstack_1grow (&temporary_obstack, c);
+	{
+	  obstack_1grow (&temporary_obstack, c);
+	  backquote = 0;
+	}
       else if (! inside && c == ' ')
 	break;
       else if (! inside && c == '\\')
@@ -249,7 +252,7 @@
 	output = extract_string (&p);
       else if (strcmp (q, "-c") == 0)
 	compiling = 1;
-      }
+    }
 
   if (compiling && output)
     return output;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/cp/typeck.c gcc-3.4.4-3/gcc/cp/typeck.c
--- gcc-3.4.4-3-orig/gcc/cp/typeck.c	2005-05-02 19:38:44.000000000 +0100
+++ gcc-3.4.4-3/gcc/cp/typeck.c	2006-05-13 17:35:16.000000000 +0100
@@ -2432,9 +2432,10 @@
 
       /* Differs from default_conversion by not setting TREE_ADDRESSABLE
 	 (because calling an inline function does not mean the function
-	 needs to be separately compiled).  */
+	 needs to be separately compiled, unless separate compilation
+	 has been requested).  */
       
-      if (DECL_INLINE (function))
+      if (DECL_INLINE (function) && !flag_keep_inline_functions)
 	function = inline_conversion (function);
       else
 	function = build_addr_func (function);
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/cppfiles.c gcc-3.4.4-3/gcc/cppfiles.c
--- gcc-3.4.4-3-orig/gcc/cppfiles.c	2004-12-15 13:41:18.000000000 +0000
+++ gcc-3.4.4-3/gcc/cppfiles.c	2006-05-13 17:35:16.000000000 +0100
@@ -233,6 +233,15 @@
   else if (errno == ENOTDIR)
     errno = ENOENT;
 
+#if 1
+   /* An attempt to open() a directory fails and sets errno to EACCES, at
+      least on some hosts.  Check and reset errno to ENOENT.  */
+  else if (errno == EACCES
+	   && stat (file->path, &file->st) == 0
+	   && S_ISDIR (file->st.st_mode))
+    errno = ENOENT; 	    
+#endif
+
   file->err_no = errno;
 
   return false;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/crtstuff.c gcc-3.4.4-3/gcc/crtstuff.c
--- gcc-3.4.4-3-orig/gcc/crtstuff.c	2004-10-14 00:29:04.000000000 +0100
+++ gcc-3.4.4-3/gcc/crtstuff.c	2005-06-03 21:03:34.000000000 +0100
@@ -134,6 +134,8 @@
 /* Likewise for _Jv_RegisterClasses.  */
 extern void _Jv_RegisterClasses (void *) TARGET_ATTRIBUTE_WEAK;
 
+#if !(defined (__MINGW32__) || defined (__CYGWIN__))
+
 #ifdef OBJECT_FORMAT_ELF
 
 /*  Declare a pointer to void function type.  */
@@ -542,3 +544,108 @@
 #else /* ! CRT_BEGIN && ! CRT_END */
 #error "One of CRT_BEGIN or CRT_END must be defined."
 #endif
+
+#else /*__MINGW32__ || __CYGWIN__ */
+
+/* Use  __main to run ctors and dtors. This code generates a
+label for beginning of .eh_frame section in crtbegin.o and terminates
+the section in crtend.o. Registration and deregistration is done by
+installing ctor and dtor functions to do the job.  */
+
+  
+#ifdef CRT_BEGIN
+
+extern  void __w32_sharedptr_initialize(void);
+
+/* Stick a label at the beginning of the frame unwind info so we can
+   register/deregister it with the exception handling library code.  */
+#if defined (USE_EH_FRAME_REGISTRY) \
+	     && !__USING_SJLJ_EXCEPTIONS__
+char __EH_FRAME_BEGIN__[]
+     __attribute__((section(EH_FRAME_SECTION_NAME), aligned(4)))
+     = { };
+
+static struct object obj;
+
+/* These will pull in references from libgcc.a(unwind-dw2-fde.o) */
+
+void __do_frame_init (void);
+void __do_frame_fini (void);
+
+void
+__do_frame_init (void)
+{
+  __w32_sharedptr_initialize();
+  __register_frame_info (__EH_FRAME_BEGIN__, &obj);
+}
+
+void
+__do_frame_fini (void)
+{
+  __deregister_frame_info (__EH_FRAME_BEGIN__);
+}
+#else /* USE_EH_FRAME_REGISTRY && !__USING_SJLJ__EXCEPTIONS__ */
+void __do_sjlj_init (void);
+
+void
+__do_sjlj_init (void)
+{
+  __w32_sharedptr_initialize();
+}
+#endif
+
+
+#elif defined CRT_END
+
+/* Terminate the frame unwind info section with a 0 as a sentinel;
+   this would be the 'length' field in a real FDE.  */
+#if defined (USE_EH_FRAME_REGISTRY) \
+	     && !__USING_SJLJ_EXCEPTIONS__
+static int __EH_FRAME_END__[]
+     __attribute__ ((unused, mode(SI), section(EH_FRAME_SECTION_NAME),
+		     aligned(4)))
+     = { 0 };
+static void __reg_frame_ctor (void) __attribute__ ((constructor));
+static void __dereg_frame_dtor (void) __attribute__ ((destructor));
+extern void __do_frame_init (void);
+extern void __do_frame_fini (void);
+
+
+/* Register the eh_frame. This has to be the first ctor to
+   be invoked so we put it in last. Since we're last, we can't
+   reference __register_frame_info in libgcc.a directly (if eh_frame
+   code has been referenced than it will have been pulled in but
+   we can't count on it) so we  call a thunk in crtbegin.o.  */
+
+static void
+__reg_frame_ctor (void)
+{
+  __do_frame_init ();
+}
+
+/* Deregister the eh_frame. This has to be the last dtor. The
+   call to __register_frame_info in crtbegin.o will have pulled in
+   libgcc.a(unwind-dw2-fde.o) if libgcc.a is static lib but not if
+   dll, so we use a thunk again to be sure.  */
+
+static void
+__dereg_frame_dtor (void)
+{
+  __do_frame_fini ();
+}
+#else
+static void __sjlj_init_ctor (void) __attribute__ ((constructor));
+void __do_sjlj_init (void);
+static void
+__sjlj_init_ctor (void)
+{
+  __do_sjlj_init ();
+}
+
+#endif /* USE_EH_FRAME_REGISTRY && !__USING_SJLJ__EXCEPTIONS__ */
+
+#else /* ! CRT_BEGIN && ! CRT_END */
+#error "One of CRT_BEGIN or CRT_END must be defined."
+#endif
+
+#endif /* __MINGW32__ || __CYGWIN__ */
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/dbxout.c gcc-3.4.4-3/gcc/dbxout.c
--- gcc-3.4.4-3-orig/gcc/dbxout.c	2005-01-27 02:01:54.000000000 +0000
+++ gcc-3.4.4-3/gcc/dbxout.c	2006-05-17 02:44:56.000000000 +0100
@@ -1470,7 +1470,7 @@
 	  fputs ("@s", asmfile);
 	  CHARS (2);
 	  print_wide_int (BITS_PER_UNIT * int_size_in_bytes (type));
-	  fputs (";-20;", asmfile);
+	  fputs (";-20", asmfile);
 	  CHARS (4);
 	}
       else
@@ -1492,7 +1492,7 @@
 	  fputs ("@s", asmfile);
 	  CHARS (2);
 	  print_wide_int (BITS_PER_UNIT * int_size_in_bytes (type));
-	  fputs (";-16;", asmfile);
+	  fputs (";-16", asmfile);
 	  CHARS (4);
 	}
       else /* Define as enumeral type (False, True) */
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/defaults.h gcc-3.4.4-3/gcc/defaults.h
--- gcc-3.4.4-3-orig/gcc/defaults.h	2005-01-16 16:01:18.000000000 +0000
+++ gcc-3.4.4-3/gcc/defaults.h	2005-06-03 21:03:34.000000000 +0100
@@ -696,4 +696,11 @@
 #define EXIT_IGNORE_STACK 0
 #endif
 
+/* This should, in the abstract, be the empty string.  However,
+   historically, GCC has accepted GLIBC's "I" flag character on all
+   systems.  */
+#ifndef TARGET_EXTRA_PRINTF_FLAG_CHARS
+#define TARGET_EXTRA_PRINTF_FLAG_CHARS "I"
+#endif
+
 #endif  /* ! GCC_DEFAULTS_H */
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/doc/extend.texi gcc-3.4.4-3/gcc/doc/extend.texi
--- gcc-3.4.4-3-orig/gcc/doc/extend.texi	2005-02-26 22:17:26.000000000 +0000
+++ gcc-3.4.4-3/gcc/doc/extend.texi	2005-06-03 21:03:38.000000000 +0100
@@ -3385,7 +3385,7 @@
 @item dllimport
 The @code{dllimport} attribute is described in @xref{Function Attributes}.
 
-@item dlexport
+@item dllexport
 The @code{dllexport} attribute is described in @xref{Function Attributes}.
 
 @end table
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/doc/hostconfig.texi gcc-3.4.4-3/gcc/doc/hostconfig.texi
--- gcc-3.4.4-3-orig/gcc/doc/hostconfig.texi	2003-07-30 00:36:48.000000000 +0100
+++ gcc-3.4.4-3/gcc/doc/hostconfig.texi	2006-05-13 17:35:34.000000000 +0100
@@ -196,8 +196,16 @@
 Define this macro if the host system has a small limit on the total
 size of an argument vector.  This causes the driver to take more care
 not to pass unnecessary arguments to subprocesses.
+
+@item HOST_LL_PREFIX
+Define this macro to be a C string representing the printf format prefix
+to specify output of long long types on your host machine. Hosts using
+the MS C runtime libs use the non-standard @samp{I64} prefix. If you do
+not define this macro, GCC will use the standard @samp{ll} prefix to
+format the printing of long long types.
 @end ftable
 
+
 In addition, if @command{configure} generates an incorrect definition of
 any of the macros in @file{auto-host.h}, you can override that
 definition in a host configuration header.  If you need to do this,
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/doc/invoke.texi gcc-3.4.4-3/gcc/doc/invoke.texi
--- gcc-3.4.4-3-orig/gcc/doc/invoke.texi	2005-04-22 07:50:00.000000000 +0100
+++ gcc-3.4.4-3/gcc/doc/invoke.texi	2006-05-13 17:35:34.000000000 +0100
@@ -497,7 +497,7 @@
 -m96bit-long-double  -mregparm=@var{num}  -momit-leaf-frame-pointer @gol
 -mno-red-zone -mno-tls-direct-seg-refs @gol
 -mcmodel=@var{code-model} @gol
--m32  -m64}
+-m32  -m64 -mstack-arg-probe}
 
 @emph{HPPA Options}
 @gccoptlist{-march=@var{architecture-type} @gol
@@ -5994,9 +5994,10 @@
 saves one instruction in the caller since there is no need to pop
 the arguments there.
 
-This calling convention is incompatible with the one normally
-used on Unix, so you cannot use it if you need to call libraries
-compiled with the Unix compiler.
+@strong{Warning:} this calling convention is incompatible with the
+one normally used on Unix or with GCC, so you cannot use it if you
+need to call libraries compiled with the Unix compiler or with GCC
+without the switch.
 
 Also, you must provide function prototypes for all functions that
 take variable numbers of arguments (including @code{printf});
@@ -8560,6 +8561,16 @@
 Generate code for the large model: This model makes no assumptions
 about addresses and sizes of sections.  Currently GCC does not implement
 this model.
+
+@item -mstack-arg-probe
+@opindex mstack-arg-probe
+Emit code in function prologue to probe the stack when allocating more
+than CHECK_STACK_LIMIT bytes in one go. 
+
+Currently, this is the default on windows systems (cygwin and mingw32),
+which define CHECK_STACK_LIMIT as 4000. On these systems, touching the
+stack at 4K increments is necessary to ensure that the guard pages used
+by the OS virtual memory manger are allocated in correct sequence.
 @end table
 
 @node HPPA Options
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/dwarf2out.c gcc-3.4.4-3/gcc/dwarf2out.c
--- gcc-3.4.4-3-orig/gcc/dwarf2out.c	2005-05-11 02:51:40.000000000 +0100
+++ gcc-3.4.4-3/gcc/dwarf2out.c	2006-05-17 02:44:56.000000000 +0100
@@ -8636,6 +8636,9 @@
     case VIEW_CONVERT_EXPR:
     case SAVE_EXPR:
     case MODIFY_EXPR:
+#ifdef GPC
+    case UNSAVE_EXPR:
+#endif
       return loc_descriptor_from_tree (TREE_OPERAND (loc, 0), addressp);
 
     case COMPONENT_REF:
@@ -8693,7 +8696,7 @@
 	rtx rtl = lookup_constant_def (loc);
 	enum machine_mode mode;
 
-	if (GET_CODE (rtl) != MEM)
+	if (!rtl || GET_CODE (rtl) != MEM)
 	  return 0;
 	mode = GET_MODE (rtl);
 	rtl = XEXP (rtl, 0);
@@ -8838,6 +8841,15 @@
       add_loc_descr (&ret, new_loc_descr (op, 0, 0));
       break;
 
+#ifdef GPC
+    case MIN_EXPR:
+      loc = build (COND_EXPR, TREE_TYPE (loc),
+		   build (GT_EXPR, integer_type_node,
+			  TREE_OPERAND (loc, 0), TREE_OPERAND (loc, 1)),
+		   TREE_OPERAND (loc, 1), TREE_OPERAND (loc, 0));
+      goto cond_expr;
+#endif
+
     case MAX_EXPR:
       loc = build (COND_EXPR, TREE_TYPE (loc),
 		   build (LT_EXPR, integer_type_node,
@@ -8847,6 +8859,9 @@
       /* ... fall through ...  */
 
     case COND_EXPR:
+#ifdef GPC
+    cond_expr:
+#endif
       {
 	dw_loc_descr_ref lhs
 	  = loc_descriptor_from_tree (TREE_OPERAND (loc, 1), 0);
@@ -8877,6 +8892,18 @@
       }
       break;
 
+#ifdef GPC
+    case REAL_CST:
+    case FLOAT_EXPR:
+    case RDIV_EXPR:
+    case STRING_CST:
+      /* In Pascal it's possible for array bounds to contain floating point
+         expressions (e.g., p/test/emil11c.pas). I don't know if it's
+         possible to represent them in dwarf2, but it doesn't seem terribly
+         important since this occurs quite rarely. -- Frank */
+      return 0;
+#endif
+
     case EXPR_WITH_FILE_LOCATION:
       return loc_descriptor_from_tree (EXPR_WFL_NODE (loc), addressp);
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/expr.c gcc-3.4.4-3/gcc/expr.c
--- gcc-3.4.4-3-orig/gcc/expr.c	2005-05-11 22:19:48.000000000 +0100
+++ gcc-3.4.4-3/gcc/expr.c	2006-05-17 02:44:56.000000000 +0100
@@ -19,6 +19,9 @@
 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 02111-1307, USA.  */
 
+
+/* @@ PATCHED FOR GPC @@ */
+
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
@@ -5078,13 +5081,36 @@
 	  return;
 	}
 
+#ifndef GPC
       domain_min = convert (sizetype, TYPE_MIN_VALUE (domain));
       domain_max = convert (sizetype, TYPE_MAX_VALUE (domain));
+#else /* GPC */
+      domain_min = convert (sbitsizetype, TYPE_MIN_VALUE (domain));
+      domain_max = convert (sbitsizetype, TYPE_MAX_VALUE (domain));
+
+      /* Align the set.  */
+      if (set_alignment)
+        domain_min = size_binop (BIT_AND_EXPR, domain_min, sbitsize_int (-(int) set_alignment));
+
+#endif /* GPC */
       bitlength = size_binop (PLUS_EXPR,
-			      size_diffop (domain_max, domain_min),
+			      size_binop (MINUS_EXPR, domain_max, domain_min),
+#ifndef GPC
 			      ssize_int (1));
+#else /* GPC */
+			      sbitsize_int (1));
+#endif /* GPC */
 
+#ifdef GPC
+      if (TREE_INT_CST_HIGH (bitlength)) {
+        error ("set size too big for host integers");
+        return;
+      }
+#endif /* GPC */
       nbits = tree_low_cst (bitlength, 1);
+#ifdef GPC
+      bitlength = convert (sizetype, bitlength);
+#endif /* GPC */
 
       /* For "small" sets, or "medium-sized" (up to 32 bytes) sets that
 	 are "complicated" (more than one range), initialize (the
@@ -5092,7 +5118,9 @@
       if (GET_MODE (target) != BLKmode || nbits <= 2 * BITS_PER_WORD
 	  || (nbytes <= 32 && TREE_CHAIN (elt) != NULL_TREE))
 	{
+#ifndef GPC
 	  unsigned int set_word_size = TYPE_ALIGN (TREE_TYPE (exp));
+#endif /* not GPC */
 	  enum machine_mode mode = mode_for_size (set_word_size, MODE_INT, 1);
 	  char *bit_buffer = alloca (nbits);
 	  HOST_WIDE_INT word = 0;
@@ -5105,10 +5133,14 @@
 	    {
 	      if (bit_buffer[ibit])
 		{
+#ifndef GPC
 		  if (BYTES_BIG_ENDIAN)
-		    word |= (1 << (set_word_size - 1 - bit_pos));
+#else /* GPC */
+		  if (set_words_big_endian)
+#endif /* GPC */
+		    word |= (((HOST_WIDE_INT)1) << (set_word_size - 1 - bit_pos));
 		  else
-		    word |= 1 << bit_pos;
+		    word |= ((HOST_WIDE_INT)1) << bit_pos;
 		}
 
 	      bit_pos++;  ibit++;
@@ -5140,6 +5172,11 @@
 	    }
 	}
       else if (!cleared)
+   /* GPC expects bits outside the range to be cleared. (fjf1010.pas)
+      Though this check might be "dead" in this GCC version since it only
+      applies to single ranges with constant bounds, and those are apparently
+      always stored as constants anyway, not initialized via `__setbits'. */
+#ifndef GPC
 	/* Don't bother clearing storage if the set is all ones.  */
 	if (TREE_CHAIN (elt) != NULL_TREE
 	    || (TREE_PURPOSE (elt) == NULL_TREE
@@ -5149,6 +5186,7 @@
 		   || (tree_low_cst (TREE_VALUE (elt), 0)
 		       - tree_low_cst (TREE_PURPOSE (elt), 0) + 1
 		       != (HOST_WIDE_INT) nbits))))
+#endif
 	  clear_storage (target, expr_size (exp));
 
       for (; elt != NULL_TREE; elt = TREE_CHAIN (elt))
@@ -5170,13 +5208,23 @@
 	      endbit = startbit;
 	    }
 
+#ifndef GPC
 	  startbit = convert (sizetype, startbit);
 	  endbit = convert (sizetype, endbit);
+#endif /* not GPC */
 	  if (! integer_zerop (domain_min))
 	    {
+#ifdef GPC
+	      startbit = convert (sbitsizetype, startbit);
+	      endbit = convert (sbitsizetype, endbit);
+#endif /* GPC */
 	      startbit = size_binop (MINUS_EXPR, startbit, domain_min);
 	      endbit = size_binop (MINUS_EXPR, endbit, domain_min);
 	    }
+#ifdef GPC
+	  startbit = convert (sizetype, startbit);
+	  endbit = convert (sizetype, endbit);
+#endif /* GPC */
 	  startbit_rtx = expand_expr (startbit, NULL_RTX, MEM,
 				      EXPAND_CONST_ADDRESS);
 	  endbit_rtx = expand_expr (endbit, NULL_RTX, MEM,
@@ -5542,8 +5590,18 @@
 	     index, then convert to sizetype and multiply by the size of the
 	     array element.  */
 	  if (low_bound != 0 && ! integer_zerop (low_bound))
+#ifdef GPC
+	    /* I think that address arithmetic should always be done on sizetype or
+	       its variants -- for Pascal signed seems to be the correct choice (and
+	       generates slightly better code). -- Waldek */
+	    index = convert (sizetype, convert (bitsizetype,
+	              size_binop (MINUS_EXPR,
+	                convert (sbitsizetype, index),
+	                convert (sbitsizetype, low_bound))));
+#else
 	    index = fold (build (MINUS_EXPR, TREE_TYPE (index),
 				 index, low_bound));
+#endif
 
 	  /* If the index has a self-referential type, pass it to a
 	     WITH_RECORD_EXPR; if the component size is, pass our
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/fold-const.c gcc-3.4.4-3/gcc/fold-const.c
--- gcc-3.4.4-3-orig/gcc/fold-const.c	2005-02-11 21:12:48.000000000 +0000
+++ gcc-3.4.4-3/gcc/fold-const.c	2006-05-17 02:44:58.000000000 +0100
@@ -19,6 +19,9 @@
 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 02111-1307, USA.  */
 
+
+/* @@ PATCHED FOR GPC @@ */
+
 /*@@ This file should be rewritten to use an arbitrary precision
   @@ representation for "struct tree_int_cst" and "struct tree_real_cst".
   @@ Perhaps the routines could also be used for bc/dc, and made a lib.
@@ -225,6 +228,17 @@
 	    && TYPE_IS_SIZETYPE (TREE_TYPE (t))))
     return overflow;
 
+#ifdef GPC
+  /* Sign extension for unsigned types (sizetype) seems quite wrong.
+     Though the previous comment says otherwise, but according to the
+     GCC ChangeLog entry of 2000-10-20, I suppose it was meant only
+     to allow for overflows, not to sign extension, for sizetypes.
+     The problem shows, e.g., when converting a bitsizetype to
+     sizetype where the value doesn't fit in ssizetype. -- Frank */
+  if (!TREE_UNSIGNED (TREE_TYPE (t)))
+  {
+#endif
+
   /* If the value's sign bit is set, extend the sign.  */
   if (prec != 2 * HOST_BITS_PER_WIDE_INT
       && (prec > HOST_BITS_PER_WIDE_INT
@@ -247,6 +261,10 @@
 	}
     }
 
+#ifdef GPC
+  }
+#endif
+
   /* Return nonzero if signed overflow occurred.  */
   return
     ((overflow | (low ^ TREE_INT_CST_LOW (t)) | (high ^ TREE_INT_CST_HIGH (t)))
@@ -1343,10 +1361,14 @@
     }
 
   TREE_OVERFLOW (t)
+#ifndef GPC
     = ((notrunc
 	? (!uns || is_sizetype) && overflow
 	: (force_fit_type (t, (!uns || is_sizetype) && overflow)
 	   && ! no_overflow))
+#else /* GPC */
+	  = ((notrunc ? overflow : force_fit_type (t, overflow))
+#endif /* GPC */
        | TREE_OVERFLOW (arg1)
        | TREE_OVERFLOW (arg2));
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/function.c gcc-3.4.4-3/gcc/function.c
--- gcc-3.4.4-3-orig/gcc/function.c	2005-05-11 22:19:50.000000000 +0100
+++ gcc-3.4.4-3/gcc/function.c	2006-05-17 02:44:58.000000000 +0100
@@ -38,6 +38,8 @@
    This function changes the DECL_RTL to be a stack slot instead of a reg
    then scans all the RTL instructions so far generated to correct them.  */
 
+/* @@ PATCHED FOR GPC @@ */
+
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
@@ -7004,8 +7006,13 @@
       tramp = round_trampoline_addr (XEXP (tramp, 0));
 #ifdef TRAMPOLINE_TEMPLATE
       blktramp = replace_equiv_address (initial_trampoline, tramp);
+#ifndef GPC
       emit_block_move (blktramp, initial_trampoline,
 		       GEN_INT (TRAMPOLINE_SIZE), BLOCK_OP_NORMAL);
+#else
+      emit_block_move (blktramp, initial_trampoline,
+                       GEN_INT (TRAMPOLINE_SIZE), BLOCK_OP_NO_LIBCALL);
+#endif
 #endif
       trampolines_created = 1;
       INITIALIZE_TRAMPOLINE (tramp, XEXP (DECL_RTL (function), 0), context);
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/gcc.c gcc-3.4.4-3/gcc/gcc.c
--- gcc-3.4.4-3-orig/gcc/gcc.c	2005-05-01 11:33:14.000000000 +0100
+++ gcc-3.4.4-3/gcc/gcc.c	2006-11-19 18:15:24.000000000 +0000
@@ -88,7 +88,7 @@
 #ifdef HAVE_SYS_RESOURCE_H
 #include <sys/resource.h>
 #endif
-#if defined (HAVE_DECL_GETRUSAGE) && !HAVE_DECL_GETRUSAGE
+#if defined (HAVE_GETRUSAGE) && defined (HAVE_DECL_GETRUSAGE) && !HAVE_DECL_GETRUSAGE
 extern int getrusage (int, struct rusage *);
 #endif
 
@@ -767,10 +767,15 @@
 static const char *cc1_options =
 "%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
  %1 %{!Q:-quiet} -dumpbase %B %{d*} %{m*} %{a*}\
- %{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}%{!c:%{!S:-auxbase %b}}\
- %{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi&trigraphs}\
- %{v:-version} %{pg:-p} %{p} %{f*} %{undef}\
- %{Qn:-fno-ident} %{--help:--help}\
+ %{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}%{!c:%{!S:-auxbase %b}} "
+#ifdef GPC
+"%{g*} %{O*} %{f*&W*&pedantic*&w} %{std*&ansi&trigraphs}\
+ %{v:-version} %{pg:-p} %{p} %{undef}"
+#else /* !GPC */
+"%{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi&trigraphs}\
+ %{v:-version} %{pg:-p} %{p} %{f*} %{undef}"
+#endif
+" %{Qn:-fno-ident} %{--help:--help}\
  %{--target-help:--target-help}\
  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
  %{fsyntax-only:-o %j} %{-param*}";
@@ -3174,7 +3179,7 @@
 			  (argc + 1) * sizeof (argv[0]));
       new_argv[0] = new_argv0;
 
-      execvp (new_argv0, new_argv);
+      execvp (new_argv0, (const char *const *)new_argv);
       fatal ("couldn't run `%s': %s", new_argv0, xstrerror (errno));
     }
 
@@ -4155,7 +4160,9 @@
 static int suffixed_basename_length;
 static const char *input_basename;
 static const char *input_suffix;
+#ifndef HOST_FILE_ID_CMP
 static struct stat input_stat;
+#endif
 static int input_stat_set;
 
 /* The compiler used to process the current input file.  */
@@ -4706,6 +4713,9 @@
 		    *((char *) temp_filename + temp_filename_length) = '\0';
 		    if (strcmp (temp_filename, input_filename) != 0)
 		      {
+#if defined HOST_FILE_ID_CMP
+			if (HOST_FILE_ID_CMP(input_filename, temp_filename) != 0)
+#else
 			struct stat st_temp;
 
 			/* Note, set_input() resets input_stat_set to 0.  */
@@ -4725,6 +4735,7 @@
 			    || stat (temp_filename, &st_temp) < 0
 			    || input_stat.st_dev != st_temp.st_dev
 			    || input_stat.st_ino != st_temp.st_ino)
+#endif
 			  {
 			    temp_filename = save_string (temp_filename,
 							 temp_filename_length + 1);
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/ggc-common.c gcc-3.4.4-3/gcc/ggc-common.c
--- gcc-3.4.4-3-orig/gcc/ggc-common.c	2003-10-29 22:14:00.000000000 +0000
+++ gcc-3.4.4-3/gcc/ggc-common.c	2006-05-13 17:35:34.000000000 +0100
@@ -650,7 +650,7 @@
   if (needs_read)
     {
       if (fseek (f, mmi.offset, SEEK_SET) != 0
-	  || fread (&mmi, mmi.size, 1, f) != 1)
+	  || fread (mmi.preferred_base, mmi.size, 1, f) != 1)
 	fatal_error ("can't read PCH file: %m");
     }
   else if (fseek (f, mmi.offset + mmi.size, SEEK_SET) != 0)
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/ggc.h gcc-3.4.4-3/gcc/ggc.h
--- gcc-3.4.4-3-orig/gcc/ggc.h	2003-12-21 14:08:34.000000000 +0000
+++ gcc-3.4.4-3/gcc/ggc.h	2006-05-13 17:35:34.000000000 +0100
@@ -287,4 +287,8 @@
 extern int ggc_min_heapsize_heuristic (void);
 extern void init_ggc_heuristics (void);
 
+#if defined(_WIN32) && ! defined(__CYGWIN__) && ! defined (_UWIN)
+#define getpagesize() 4096
+#endif
+
 #endif
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/ginclude/stdarg.h gcc-3.4.4-3/gcc/ginclude/stdarg.h
--- gcc-3.4.4-3-orig/gcc/ginclude/stdarg.h	2003-03-13 02:58:40.000000000 +0000
+++ gcc-3.4.4-3/gcc/ginclude/stdarg.h	2005-06-03 21:03:38.000000000 +0100
@@ -30,6 +30,7 @@
 
 #ifndef _STDARG_H
 #ifndef _ANSI_STDARG_H_
+#ifndef RC_INVOKED
 #ifndef __need___va_list
 #define _STDARG_H
 #define _ANSI_STDARG_H_
@@ -129,5 +130,6 @@
 
 #endif /* _STDARG_H */
 
+#endif /* not RC_INVOKED */
 #endif /* not _ANSI_STDARG_H_ */
 #endif /* not _STDARG_H */
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/hwint.h gcc-3.4.4-3/gcc/hwint.h
--- gcc-3.4.4-3-orig/gcc/hwint.h	2003-06-25 20:33:08.000000000 +0100
+++ gcc-3.4.4-3/gcc/hwint.h	2005-06-03 21:03:34.000000000 +0100
@@ -15,6 +15,12 @@
 #define HOST_BITS_PER_INT   (CHAR_BIT * SIZEOF_INT)
 #define HOST_BITS_PER_LONG  (CHAR_BIT * SIZEOF_LONG)
 
+/* On some hosts, runtime printf does not use standard long long prefix.
+   This default can be overriden in host config file.  */
+#ifndef HOST_LL_PREFIX
+# define HOST_LL_PREFIX "ll"
+#endif
+
 /* If HAVE_LONG_LONG and SIZEOF_LONG_LONG aren't defined, but
    GCC_VERSION >= 3000, assume this is the second or later stage of a
    bootstrap, we do have long long, and it's 64 bits.  (This is
@@ -74,10 +80,10 @@
 #  define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%08lx"
 # endif
 #else
-# define HOST_WIDE_INT_PRINT "ll"
+# define HOST_WIDE_INT_PRINT HOST_LL_PREFIX
 # define HOST_WIDE_INT_PRINT_C "LL"
   /* We can assume that 'long long' is at least 64 bits.  */
-# define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%llx%016llx"
+# define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%" HOST_LL_PREFIX "x%016" HOST_LL_PREFIX "x"
 #endif /* HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG */
 
 #define HOST_WIDE_INT_PRINT_DEC "%" HOST_WIDE_INT_PRINT "d"
@@ -109,11 +115,11 @@
     #error "This line should be impossible to reach"
 #  endif
 # endif
-# define HOST_WIDEST_INT_PRINT_DEC	      "%lld"
-# define HOST_WIDEST_INT_PRINT_DEC_C	      "%lldLL"
-# define HOST_WIDEST_INT_PRINT_UNSIGNED	      "%llu"
-# define HOST_WIDEST_INT_PRINT_HEX	      "0x%llx"
-# define HOST_WIDEST_INT_PRINT_DOUBLE_HEX     "0x%llx%016llx"
+# define HOST_WIDEST_INT_PRINT_DEC	      "%" HOST_LL_PREFIX "d"
+# define HOST_WIDEST_INT_PRINT_DEC_C	      "%" HOST_LL_PREFIX "dLL"
+# define HOST_WIDEST_INT_PRINT_UNSIGNED	      "%" HOST_LL_PREFIX "u"
+# define HOST_WIDEST_INT_PRINT_HEX	      "0x%" HOST_LL_PREFIX "x"
+# define HOST_WIDEST_INT_PRINT_DOUBLE_HEX     "0x%" HOST_LL_PREFIX "x%016" HOST_LL_PREFIX "x"
 #endif
 
 #endif /* ! GCC_HWINT_H */
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/integrate.c gcc-3.4.4-3/gcc/integrate.c
--- gcc-3.4.4-3-orig/gcc/integrate.c	2004-12-05 05:21:02.000000000 +0000
+++ gcc-3.4.4-3/gcc/integrate.c	2006-05-17 02:44:58.000000000 +0100
@@ -1341,6 +1341,30 @@
     {
       rtx copy, pattern, set;
 
+#ifdef GPC
+      /* CALL_PLACEHOLDERs within inline functions seem to cause
+         trouble in Pascal (fjf709.pas). References to formal
+         parameters of the inline function might get confused. So
+         replace the CALL_PLACEHOLDER by the normal calling code
+         here, at the cost of avoiding this particular combination
+         of optimizations (inlining and tail recursion/sibling
+         calls) -- though I'm not actually sure if it should be done
+         at all; the C frontend also seems to do only inlining in a
+         similar situation, and this might be good enough already.
+
+         I don't understand all the backend does here, and I'm not
+         even sure if the real bug is in the fontend or backend, or
+         whether this is a fix or a work-around ... -- Frank */
+      if (GET_CODE (insn) == CALL_INSN
+          && GET_CODE (PATTERN (insn)) == CALL_PLACEHOLDER)
+        {
+          rtx tmp = PREV_INSN (insn);
+          replace_call_placeholder (insn, sibcall_use_normal);
+          insn = tmp;
+          continue;
+        }
+#endif
+
       map->orig_asm_operands_vector = 0;
 
       switch (GET_CODE (insn))
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/java/expr.c gcc-3.4.4-3/gcc/java/expr.c
--- gcc-3.4.4-3-orig/gcc/java/expr.c	2004-01-30 01:31:32.000000000 +0000
+++ gcc-3.4.4-3/gcc/java/expr.c	2005-06-03 21:03:38.000000000 +0100
@@ -2201,7 +2201,7 @@
   args = NULL_TREE;
   for (tem = method_args; tem != NULL_TREE; tem = TREE_CHAIN (tem))
     {
-      int arg_bits = TREE_INT_CST_LOW (TYPE_SIZE_UNIT (TREE_TYPE (tem)));
+      int arg_bits = TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (tem)));
 #ifdef PARM_BOUNDARY
       arg_bits = (((arg_bits + PARM_BOUNDARY - 1) / PARM_BOUNDARY)
                   * PARM_BOUNDARY);
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/java/parse.y gcc-3.4.4-3/gcc/java/parse.y
--- gcc-3.4.4-3-orig/gcc/java/parse.y	2004-12-08 17:29:40.000000000 +0000
+++ gcc-3.4.4-3/gcc/java/parse.y	2005-06-03 21:03:38.000000000 +0100
@@ -13853,8 +13853,7 @@
       /* OP1 is no longer the last node holding a crafted StringBuffer */
       IS_CRAFTED_STRING_BUFFER_P (op1) = 0;
       /* Create a node for `{new...,xxx}.append (op2)' */
-      if (op2)
-	op1 = make_qualified_primary (op1, BUILD_APPEND (op2), 0);
+      op1 = make_qualified_primary (op1, BUILD_APPEND (op2), 0);
     }
 
   /* Mark the last node holding a crafted StringBuffer */
@@ -15827,8 +15826,10 @@
   tree t1, t2, patched;
   int error_found = 0;
 
-  /* Operands of ?: might be StringBuffers crafted as a result of a
-     string concatenation. Obtain a descent operand here.  */
+  /* The condition and operands of ?: might be StringBuffers crafted
+     as a result of a string concatenation.  Obtain decent ones here.  */
+  if ((patched = patch_string (cond)))
+    TREE_OPERAND (node, 0) = cond = patched;
   if ((patched = patch_string (op1)))
     TREE_OPERAND (node, 1) = op1 = patched;
   if ((patched = patch_string (op2)))
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/libgcc2.c gcc-3.4.4-3/gcc/libgcc2.c
--- gcc-3.4.4-3-orig/gcc/libgcc2.c	2004-12-15 12:34:24.000000000 +0000
+++ gcc-3.4.4-3/gcc/libgcc2.c	2005-06-03 23:16:56.000000000 +0100
@@ -29,6 +29,17 @@
 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 02111-1307, USA.  */
 
+#ifdef L_eprintf
+#ifdef __APPLE__
+/* Hack for MacOS 10.4: gcc 3.4.x uses -mlong-double-128 to build
+   libgcc.  On 10.4, this causes *printf to be defined as
+   *printf$LDBLStub and requires linking with libSystemStubs.  Prevent
+   this from happening by making it seem as though double is the same
+   as long double. */
+#undef  __LDBL_MANT_DIG__
+#define __LDBL_MANT_DIG__ __DBL_MANT_DIG__
+#endif
+#endif
 
 /* We include auto-host.h here to get HAVE_GAS_HIDDEN.  This is
    supposedly valid even though this is a "target" file.  */
@@ -1573,7 +1584,7 @@
 
 /* Jump to a trampoline, loading the static chain address.  */
 
-#if defined(WINNT) && ! defined(__CYGWIN__) && ! defined (_UWIN)
+#if defined(_WIN32) && ! defined(__CYGWIN__) && ! defined (_UWIN)
 
 long
 getpagesize (void)
@@ -1620,7 +1631,7 @@
 #endif
 #endif /* L_trampoline */
 
-#ifndef __CYGWIN__
+#if !(defined  __CYGWIN__ || defined __MINGW32__)
 #ifdef L__main
 
 #include "gbl-ctors.h"
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/p/gbe.h gcc-3.4.4-3/gcc/p/gbe.h
--- gcc-3.4.4-3-orig/gcc/p/gbe.h	2005-03-25 20:53:14.000000000 +0000
+++ gcc-3.4.4-3/gcc/p/gbe.h	2006-05-17 05:00:32.000000000 +0100
@@ -153,7 +153,11 @@
 extern struct function *outer_function_chain;
 #endif
 #else
+#if !defined(GCC_3_3) && !defined(GCC_3_4)
 extern char *version_string;
+#else
+extern const char version_string[];
+#endif
 extern char *progname;  /* in cpplib.h, but we don't need to include it just for that */
 extern struct obstack permanent_obstack;
 extern struct obstack *current_obstack;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/p/gpc.c gcc-3.4.4-3/gcc/p/gpc.c
--- gcc-3.4.4-3-orig/gcc/p/gpc.c	2005-03-28 20:47:04.000000000 +0100
+++ gcc-3.4.4-3/gcc/p/gpc.c	2006-05-17 05:00:42.000000000 +0100
@@ -119,7 +119,12 @@
 #include "flags.h"
 #include "version.h"
 #else
+#if !defined(GCC_3_3) && !defined(GCC_3_4)
 extern char *version_string;
+#else
+extern const char version_string[];
+#endif
+
 extern char *make_temp_file (const char *);
 extern void *alloca (size_t);
 #endif
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/p/gpcpp.c gcc-3.4.4-3/gcc/p/gpcpp.c
--- gcc-3.4.4-3-orig/gcc/p/gpcpp.c	2005-03-20 12:15:30.000000000 +0000
+++ gcc-3.4.4-3/gcc/p/gpcpp.c	2006-05-17 05:00:48.000000000 +0100
@@ -108,7 +108,7 @@
 
 typedef unsigned char U_CHAR;
 
-#ifndef GCC_3_3
+#if !defined(GCC_3_3) && !defined(GCC_3_4)
 extern char *version_string;
 #else
 extern const char version_string[];
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/p/gpcspec.c gcc-3.4.4-3/gcc/p/gpcspec.c
--- gcc-3.4.4-3-orig/gcc/p/gpcspec.c	2005-03-20 12:15:30.000000000 +0000
+++ gcc-3.4.4-3/gcc/p/gpcspec.c	2006-05-17 05:00:56.000000000 +0100
@@ -98,7 +98,11 @@
 static int gpc_newargc;
 static char **gpc_newargv;
 
+#if !defined(GCC_3_3) && !defined(GCC_3_4)
 extern char *version_string;
+#else
+extern const char version_string[];
+#endif
 
 /* --- This comes from gcc.c (2.8.1) verbatim: */
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/p/options.c gcc-3.4.4-3/gcc/p/options.c
--- gcc-3.4.4-3-orig/gcc/p/options.c	2005-03-28 16:24:32.000000000 +0100
+++ gcc-3.4.4-3/gcc/p/options.c	2006-05-17 05:01:26.000000000 +0100
@@ -916,8 +916,10 @@
   if (version_flag)
     fprintf (stderr, "GNU Pascal version is actually %s, based on gcc-%s\n", GPC_RELEASE_STRING, version_string);
 #else
+#if !defined(GCC_3_3) && !defined(GCC_3_4)
   version_string = concat (GPC_RELEASE_STRING ", based on gcc-", version_string, NULL);
 #endif
+#endif
 
   lexer_options = compiler_options = co = (struct options *) xmalloc (sizeof (struct options));
   memset (co, 0, sizeof (struct options));
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/real.h gcc-3.4.4-3/gcc/real.h
--- gcc-3.4.4-3-orig/gcc/real.h	2003-10-10 21:33:06.000000000 +0100
+++ gcc-3.4.4-3/gcc/real.h	2006-05-13 17:35:34.000000000 +0100
@@ -40,9 +40,17 @@
 #define SIGSZ			(SIGNIFICAND_BITS / HOST_BITS_PER_LONG)
 #define SIG_MSB			((unsigned long)1 << (HOST_BITS_PER_LONG - 1))
 
+/* Can't have "class" in C++, but gentype gets confused on #ifdefs
+   within the struct. */
+#ifndef __cplusplus
+# define REAL_CLASSY class
+#else
+# define REAL_CLASSY cl
+#endif
+
 struct real_value GTY(())
 {
-  ENUM_BITFIELD (real_value_class) class : 2;
+  ENUM_BITFIELD (real_value_class) REAL_CLASSY : 2;
   unsigned int sign : 1;
   unsigned int signalling : 1;
   unsigned int canonical : 1;
@@ -50,6 +58,8 @@
   unsigned long sig[SIGSZ];
 };
 
+#undef REAL_CLASSY
+
 /* Various headers condition prototypes on #ifdef REAL_VALUE_TYPE, so it
    needs to be a macro.  We do need to continue to have a structure tag
    so that other headers can forward declare it.  */
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/rtl.h gcc-3.4.4-3/gcc/rtl.h
--- gcc-3.4.4-3-orig/gcc/rtl.h	2004-12-05 05:21:02.000000000 +0000
+++ gcc-3.4.4-3/gcc/rtl.h	2006-05-13 17:35:34.000000000 +0100
@@ -121,8 +121,13 @@
   int rtint;
   unsigned int rtuint;
   const char *rtstr;
+#ifndef __cplusplus
   rtx rtx;
   rtvec rtvec;
+#else
+  rtx rt_rtx;
+  rtvec rt_vec;
+#endif
   enum machine_mode rttype;
   addr_diff_vec_flags rt_addr_diff_vec_flags;
   struct cselib_val_struct *rt_cselib;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/stor-layout.c gcc-3.4.4-3/gcc/stor-layout.c
--- gcc-3.4.4-3-orig/gcc/stor-layout.c	2004-05-29 00:16:00.000000000 +0100
+++ gcc-3.4.4-3/gcc/stor-layout.c	2006-05-17 02:44:58.000000000 +0100
@@ -1,6 +1,6 @@
 /* C-compiler utilities for types and variables storage layout
    Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1996, 1998,
-   1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2003. 2004  Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -20,6 +20,8 @@
 02111-1307, USA.  */
 
 
+/* @@ PATCHED FOR GPC 20050320 @@ */
+
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
@@ -59,6 +61,20 @@
    called only by a front end.  */
 static int reference_types_internal = 0;
 
+#ifdef GPC
+/* The word size of a bitstring or (power-)set value, in bits.
+   Must be non-zero.
+   May be overridden by front-ends.  */
+unsigned int set_word_size = BITS_PER_UNIT;
+
+/* If non-zero, bits in (power-)sets start with the highest bit.
+   May be overridden by front-ends.
+   In order to be backward-compatible, the Chill frontend should
+   initialize this to BYTES_BIG_ENDIAN.  */
+unsigned int set_words_big_endian = 0;
+
+#endif /* GPC */
+
 static void finalize_record_size (record_layout_info);
 static void finalize_type_size (tree);
 static void place_union_field (record_layout_info, tree);
@@ -1654,7 +1670,11 @@
 
 		if (maxvalue - minvalue == 1
 		    && (maxvalue == 1 || maxvalue == 0))
+#ifndef GPC
 		  element_size = integer_one_node;
+#else /* GPC */
+		  element_size = bitsize_int(1);
+#endif /* GPC */
 	      }
 
 	    /* If neither bound is a constant and sizetype is signed, make
@@ -1759,6 +1779,7 @@
 	abort ();
       else
 	{
+#ifndef GPC
 #ifndef SET_WORD_SIZE
 #define SET_WORD_SIZE BITS_PER_WORD
 #endif
@@ -1777,9 +1798,47 @@
 
 	  TYPE_SIZE (type) = bitsize_int (rounded_size);
 	  TYPE_SIZE_UNIT (type) = size_int (rounded_size / BITS_PER_UNIT);
+#else /* GPC */
+	  int alignment = set_alignment ? set_alignment : set_word_size;
+	  tree lower_bound = convert (sbitsizetype, 
+			TYPE_MIN_VALUE (TYPE_DOMAIN (type))); 
+	  tree upper_bound = convert (sbitsizetype,
+			TYPE_MAX_VALUE (TYPE_DOMAIN (type))); 
+	  tree size_in_bits, rounded_size;
+	  if (set_alignment)
+            {
+              lower_bound = round_down (lower_bound, alignment);
+            }
+	  size_in_bits = size_binop (PLUS_EXPR,
+				size_binop (MINUS_EXPR,
+					upper_bound,
+					lower_bound),
+				sbitsize_int(1));
+          rounded_size = round_up (size_in_bits, alignment);
+				
+	  if ( TREE_INT_CST_HIGH (rounded_size) 
+		|| TREE_INT_CST_LOW (rounded_size) > (unsigned) alignment) 
+	    {
+		TYPE_MODE (type) = BLKmode;
+	    }
+	  else 
+	    {
+		TYPE_MODE (type) = mode_for_size (alignment, MODE_INT, 1);
+	    } 
+
+	  TYPE_SIZE (type) = convert (bitsizetype, rounded_size);
+	  TYPE_SIZE_UNIT (type) = convert (sizetype, 
+				size_binop ( CEIL_DIV_EXPR,
+					rounded_size, 
+					sbitsize_int (BITS_PER_UNIT)));
+#endif /* GPC */
 	  TYPE_ALIGN (type) = alignment;
 	  TYPE_USER_ALIGN (type) = 0;
+#ifndef GPC
 	  TYPE_PRECISION (type) = size_in_bits;
+#else /* GPC */
+	  TYPE_PRECISION (type) = TREE_INT_CST_LOW (size_in_bits);
+#endif /* GPC */
 	}
       break;
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/testsuite/g++.dg/ext/attrib9.C gcc-3.4.4-3/gcc/testsuite/g++.dg/ext/attrib9.C
--- gcc-3.4.4-3-orig/gcc/testsuite/g++.dg/ext/attrib9.C	2004-01-14 07:31:40.000000000 +0000
+++ gcc-3.4.4-3/gcc/testsuite/g++.dg/ext/attrib9.C	2006-05-13 17:35:36.000000000 +0100
@@ -1,5 +1,5 @@
-class __attribute__((unused)) C;	//  { dg-warning "type attributes" }
-struct __attribute__((unused)) S;	//  { dg-warning "type attributes" }
-union __attribute__((unused)) U;	//  { dg-warning "type attributes" }
+class __attribute__((unused)) C;
+struct __attribute__((unused)) S;
+union __attribute__((unused)) U;
 enum e {};
-enum __attribute__((unused)) e;		//  { dg-warning "type attributes" }
+enum __attribute__((unused)) e;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/testsuite/g++.dg/warn/weak1.C gcc-3.4.4-3/gcc/testsuite/g++.dg/warn/weak1.C
--- gcc-3.4.4-3-orig/gcc/testsuite/g++.dg/warn/weak1.C	2003-04-26 22:31:24.000000000 +0100
+++ gcc-3.4.4-3/gcc/testsuite/g++.dg/warn/weak1.C	2006-05-13 17:35:36.000000000 +0100
@@ -1,6 +1,6 @@
 // { dg-do run }
-// { dg-do compile { target *-*-coff i?86-pc-cygwin } }
-// { dg-warning "weak declaration" "COFF format does not support weak" { target *-*-coff i?86-pc-cygwin powerpc-ibm-aix4* rs6000-ibm-aix4* } 5 }
+// { dg-do compile { target *-*-coff i?86-pc-cygwin i?86-pc-mingw*} }
+// { dg-warning "weak declaration" "COFF format does not support weak" { target *-*-coff i?86-pc-cygwin i?86-pc-mingw* powerpc-ibm-aix4* rs6000-ibm-aix4* } 5 }
 
 extern void foo (void) __attribute__ ((weak));
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/testsuite/gcc.dg/i386-bitfield1.c gcc-3.4.4-3/gcc/testsuite/gcc.dg/i386-bitfield1.c
--- gcc-3.4.4-3-orig/gcc/testsuite/gcc.dg/i386-bitfield1.c	2002-12-16 18:22:44.000000000 +0000
+++ gcc-3.4.4-3/gcc/testsuite/gcc.dg/i386-bitfield1.c	2006-05-13 17:35:36.000000000 +0100
@@ -1,7 +1,7 @@
 // Test for bitfield alignment in structs on IA-32
 // { dg-do run { target i?86-*-* } }
 // { dg-options "-O2" }
-// { dg-options "-mno-align-double -mno-ms-bitfields" { target *-*-interix* } }
+// { dg-options "-mno-align-double -mno-ms-bitfields" { target *-*-interix* i?86-pc-mingw* i?86-pc-cygwin } }
 
 extern void abort (void);
 extern void exit (int);
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/testsuite/gcc.dg/i386-bitfield2.c gcc-3.4.4-3/gcc/testsuite/gcc.dg/i386-bitfield2.c
--- gcc-3.4.4-3-orig/gcc/testsuite/gcc.dg/i386-bitfield2.c	2002-12-23 02:10:18.000000000 +0000
+++ gcc-3.4.4-3/gcc/testsuite/gcc.dg/i386-bitfield2.c	2005-06-03 21:03:38.000000000 +0100
@@ -1,8 +1,7 @@
 // Test for bitfield alignment in structs on IA-32
 // { dg-do run { target i?86-*-* } }
 // { dg-options "-O2" }
-// { dg-options "-mno-align-double -mno-ms-bitfields" { target *-*-interix* } }
-
+// { dg-options "-mno-align-double -mno-ms-bitfields" { target *-*-interix*  i?86-pc-mingw* i?86-pc-cygwin } }
 extern void abort (void);
 extern void exit (int);
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/testsuite/gcc.dg/i386-bitfield3.c gcc-3.4.4-3/gcc/testsuite/gcc.dg/i386-bitfield3.c
--- gcc-3.4.4-3-orig/gcc/testsuite/gcc.dg/i386-bitfield3.c	2002-12-23 16:38:44.000000000 +0000
+++ gcc-3.4.4-3/gcc/testsuite/gcc.dg/i386-bitfield3.c	2006-05-13 17:35:36.000000000 +0100
@@ -1,7 +1,7 @@
 // Test for bitfield alignment in structs on IA-32
 // { dg-do run { target i?86-*-* } }
 // { dg-options "-O2" }
-// { dg-options "-mno-align-double -mno-ms-bitfields" { target *-*-interix* } }
+// { dg-options "-mno-align-double -mno-ms-bitfields" { target *-*-interix*  i?86-pc-mingw* i?86-pc-cygwin } }
 
 extern void abort (void);
 extern void exit (int);
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/testsuite/objc/execute/class-4.m gcc-3.4.4-3/gcc/testsuite/objc/execute/class-4.m
--- gcc-3.4.4-3-orig/gcc/testsuite/objc/execute/class-4.m	2003-09-25 02:26:00.000000000 +0100
+++ gcc-3.4.4-3/gcc/testsuite/objc/execute/class-4.m	2005-06-03 21:03:38.000000000 +0100
@@ -41,11 +41,12 @@
 #include "class-tests-1.h"
 #define TYPE_OF_OBJECT_WITH_ACCESSOR_METHOD SubClass *
 #include "class-tests-2.h"
+#include <gc.h>
 
 int main (void)
 {
+ GC_init();
   SubClass *object;
-
   test_class_with_superclass ("SubClass", "RootClass");
   test_that_class_has_instance_method ("SubClass", @selector (setState:));
   test_that_class_has_instance_method ("SubClass", @selector (state));
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/tlink.c gcc-3.4.4-3/gcc/tlink.c
--- gcc-3.4.4-3-orig/gcc/tlink.c	2003-07-19 15:47:14.000000000 +0100
+++ gcc-3.4.4-3/gcc/tlink.c	2005-06-03 21:03:34.000000000 +0100
@@ -38,6 +38,8 @@
 extern int prepends_underscore;
 
 static int tlink_verbose;
+
+static char initial_cwd[MAXPATHLEN + 1];
 
 /* Hash table boilerplate for working with htab_t.  We have hash tables
    for symbol names, file names, and demangled symbols.  */
@@ -272,6 +274,8 @@
       if (debug)
 	tlink_verbose = 3;
     }
+
+  getcwd (initial_cwd, sizeof (initial_cwd));
 }
 
 static int
@@ -432,9 +436,7 @@
 }
 
 /* Update the repo files for each of the object files we have adjusted and
-   recompile.
-
-   XXX Should this use collect_execute instead of system?  */
+   recompile.  */
 
 static int
 recompile_files (void)
@@ -446,7 +448,10 @@
 
   while ((f = file_pop ()) != NULL)
     {
-      char *line, *command;
+      char *line;
+      const char *p, *q;
+      char **argv;
+      struct obstack arg_stack;
       FILE *stream = fopen (f->key, "r");
       const char *const outname = frob_extension (f->key, ".rnw");
       FILE *output = fopen (outname, "w");
@@ -463,27 +468,76 @@
 	}
       fclose (stream);
       fclose (output);
-      rename (outname, f->key);
+      /* On Windows "rename" returns -1 and sets ERRNO to EACCESS if
+	 the new file name already exists.  Therefore, we explicitly
+	 remove the old file first.  */
+      if (remove (f->key) == -1)
+	fatal_perror ("removing .rpo file");
+      if (rename (outname, f->key) == -1)
+	fatal_perror ("renaming .rpo file");
 
-      obstack_grow (&temporary_obstack, "cd ", 3);
-      obstack_grow (&temporary_obstack, f->dir, strlen (f->dir));
-      obstack_grow (&temporary_obstack, "; ", 2);
-      obstack_grow (&temporary_obstack, c_file_name, strlen (c_file_name));
-      obstack_1grow (&temporary_obstack, ' ');
-      obstack_grow (&temporary_obstack, f->args, strlen (f->args));
-      obstack_1grow (&temporary_obstack, ' ');
-      command = obstack_copy0 (&temporary_obstack, f->main, strlen (f->main));
+      if (!f->args)
+	{
+	  error ("repository file `%s' does not contain command-line "
+		 "arguments", f->key);
+	  return 0;
+	}
+
+      /* Build a null-terminated argv array suitable for
+	 tlink_execute().  Manipulate arguments on the arg_stack while
+	 building argv on the temporary_obstack.  */
+
+      obstack_init (&arg_stack);
+      obstack_ptr_grow (&temporary_obstack, c_file_name);
+
+      for (p = f->args; *p != '\0'; p = q + 1)
+	{
+	  /* Arguments are delimited by single-quotes.  Find the
+	     opening quote.  */
+	  p = strchr (p, '\'');
+	  if (!p)
+	    goto done;
+
+	  /* Find the closing quote.  */
+	  q = strchr (p + 1, '\'');
+	  if (!q)
+	    goto done;
+
+	  obstack_grow (&arg_stack, p + 1, q - (p + 1));
+
+	  /* Replace '\'' with '.  This is how set_collect_gcc_options
+	     encodes a single-quote.  */
+	  while (q[1] == '\\' && q[2] == '\'' && q[3] == '\'')
+	    {
+	      const char *r;
+
+	      r = strchr (q + 4, '\'');
+	      if (!r)
+		goto done;
+
+	      obstack_grow (&arg_stack, q + 3, r - (q + 3));
+	      q = r;
+	    }
+
+	  obstack_1grow (&arg_stack, '\0');
+	  obstack_ptr_grow (&temporary_obstack, obstack_finish (&arg_stack));
+	}
+    done:
+      obstack_ptr_grow (&temporary_obstack, f->main);
+      obstack_ptr_grow (&temporary_obstack, NULL);
+      argv = obstack_finish (&temporary_obstack);
 
       if (tlink_verbose)
 	fprintf (stderr, _("collect: recompiling %s\n"), f->main);
-      if (tlink_verbose >= 3)
-	fprintf (stderr, "%s\n", command);
 
-      if (system (command) != 0)
+      if (chdir (f->dir) != 0
+	  || tlink_execute (c_file_name, argv, NULL) != 0
+	  || chdir (initial_cwd) != 0)
 	return 0;
 
       read_repo_file (f);
 
+      obstack_free (&arg_stack, NULL);
       obstack_free (&temporary_obstack, temporary_firstobj);
     }
   return 1;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/toplev.c gcc-3.4.4-3/gcc/toplev.c
--- gcc-3.4.4-3-orig/gcc/toplev.c	2005-03-09 00:50:26.000000000 +0000
+++ gcc-3.4.4-3/gcc/toplev.c	2006-05-13 17:35:36.000000000 +0100
@@ -4033,8 +4033,8 @@
       if (!strcmp (asm_file_name, "-"))
 	asm_out_file = stdout;
       else
-	asm_out_file = fopen (asm_file_name, "w+");
-      if (asm_out_file == 0)
+	asm_out_file = fopen (asm_file_name, "w+b");
+     if (asm_out_file == 0)
 	fatal_error ("can't open %s for writing: %m", asm_file_name);
     }
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/tree.c gcc-3.4.4-3/gcc/tree.c
--- gcc-3.4.4-3-orig/gcc/tree.c	2004-08-23 19:02:42.000000000 +0100
+++ gcc-3.4.4-3/gcc/tree.c	2006-06-10 12:35:36.000000000 +0100
@@ -19,6 +19,8 @@
 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 02111-1307, USA.  */
 
+/* @@ PATCHED FOR GPC @@ */
+
 /* This file contains the low level primitives for operating on tree nodes,
    including allocation, list operations, interning of identifiers,
    construction of data type nodes and statement nodes,
@@ -3767,6 +3769,9 @@
   TYPE_SIZE_UNIT (itype) = TYPE_SIZE_UNIT (type);
   TYPE_ALIGN (itype) = TYPE_ALIGN (type);
   TYPE_USER_ALIGN (itype) = TYPE_USER_ALIGN (type);
+#ifdef GPC
+  TREE_UNSIGNED (itype) = TREE_UNSIGNED (type);
+#endif
 
   if (host_integerp (lowval, 0) && highval != 0 && host_integerp (highval, 0))
     return type_hash_canon (tree_low_cst (highval, 0)
@@ -4649,10 +4654,22 @@
     = tree_low_cst (TYPE_MIN_VALUE (TYPE_DOMAIN (TREE_TYPE (init))), 0);
   tree non_const_bits = NULL_TREE;
 
+#ifdef GPC
+  /* Align the set.  */
+  if (set_alignment)
+    /* Note: `domain_min -= domain_min % set_alignment' would be wrong for negative
+       numbers (rounding towards 0, while we have to round towards -inf). */
+    domain_min &= -(int) set_alignment;
+#endif /* GPC */
+
   for (i = 0; i < bit_size; i++)
     buffer[i] = 0;
 
+#ifndef GPC
   for (vals = TREE_OPERAND (init, 1);
+#else  /* GPC */
+  for (vals = CONSTRUCTOR_ELTS (init);
+#endif /* GPC */
        vals != NULL_TREE; vals = TREE_CHAIN (vals))
     {
       if (!host_integerp (TREE_VALUE (vals), 0)
@@ -4670,7 +4687,14 @@
 
 	  if (lo_index < 0 || lo_index >= bit_size
 	      || hi_index < 0 || hi_index >= bit_size)
+#ifndef GPC
 	    abort ();
+#else  /* GPC */
+	    {
+	      error ("invalid set initializer");
+	      return NULL_TREE;
+	    }
+#endif /* GPC */
 	  for (; lo_index <= hi_index; lo_index++)
 	    buffer[lo_index] = 1;
 	}
@@ -4681,7 +4705,11 @@
 	    = tree_low_cst (TREE_VALUE (vals), 0) - domain_min;
 	  if (index < 0 || index >= bit_size)
 	    {
+#ifndef GPC
 	      error ("invalid initializer for bit string");
+#else  /* GPC */
+	      error ("invalid set initializer");
+#endif /* GPC */
 	      return NULL_TREE;
 	    }
 	  buffer[index] = 1;
@@ -4699,9 +4727,14 @@
 get_set_constructor_bytes (tree init, unsigned char *buffer, int wd_size)
 {
   int i;
+#ifdef GPC
+  int bit_size = wd_size * BITS_PER_UNIT;
+  unsigned int bit_pos = 0;
+#else /* not GPC */
   int set_word_size = BITS_PER_UNIT;
   int bit_size = wd_size * set_word_size;
   int bit_pos = 0;
+#endif /* not GPC */
   unsigned char *bytep = buffer;
   char *bit_buffer = alloca (bit_size);
   tree non_const_bits = get_set_constructor_bits (init, bit_buffer, bit_size);
@@ -4711,6 +4744,24 @@
 
   for (i = 0; i < bit_size; i++)
     {
+#ifdef GPC
+      if (bit_buffer[i])
+	{
+          int k = bit_pos / BITS_PER_UNIT;
+          if (WORDS_BIG_ENDIAN)
+            k = set_word_size / BITS_PER_UNIT - 1 - k;
+	  if (set_words_big_endian)
+	    bytep[k] |= (1 << (BITS_PER_UNIT - 1 - bit_pos % BITS_PER_UNIT));
+	  else
+	    bytep[k] |= (1 << (bit_pos % BITS_PER_UNIT));
+	}
+      bit_pos++;
+      if (bit_pos >= set_word_size)
+	{
+          bit_pos = 0;
+          bytep += set_word_size / BITS_PER_UNIT;
+        }
+#else /* not GPC */
       if (bit_buffer[i])
 	{
 	  if (BYTES_BIG_ENDIAN)
@@ -4721,6 +4772,7 @@
       bit_pos++;
       if (bit_pos >= set_word_size)
 	bit_pos = 0, bytep++;
+#endif /* not GPC */
     }
   return non_const_bits;
 }
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/tree.h gcc-3.4.4-3/gcc/tree.h
--- gcc-3.4.4-3-orig/gcc/tree.h	2005-01-16 16:01:20.000000000 +0000
+++ gcc-3.4.4-3/gcc/tree.h	2006-05-17 02:44:58.000000000 +0100
@@ -22,6 +22,9 @@
 #ifndef GCC_TREE_H
 #define GCC_TREE_H
 
+
+/* @@ PATCHED FOR GPC @@ */
+
 #include "machmode.h"
 #include "version.h"
 #include "input.h"
@@ -2463,6 +2466,14 @@
 
 /* If nonzero, the alignment of a bitstring or (power-)set value, in bits.  */
 extern unsigned int set_alignment;
+#ifdef GPC
+
+/* The word size of a bitstring or (power-)set value, in bits.  */
+extern unsigned int set_word_size;
+
+/* If non-zero, bits in (power-)sets start with the highest bit.  */
+extern unsigned int set_words_big_endian;
+#endif /* GPC */
 
 /* Concatenate two lists (chains of TREE_LIST nodes) X and Y
    by making the last node in X point to Y.
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/unwind-dw2-fde.c gcc-3.4.4-3/gcc/unwind-dw2-fde.c
--- gcc-3.4.4-3-orig/gcc/unwind-dw2-fde.c	2003-10-31 20:46:26.000000000 +0000
+++ gcc-3.4.4-3/gcc/unwind-dw2-fde.c	2005-06-03 21:03:34.000000000 +0100
@@ -41,18 +41,32 @@
 #include "gthr.h"
 #endif
 
+#if defined (__MINGW32__ ) || defined (__CYGWIN__)
+#include "config/i386/w32-shared-ptr.h"
+#endif
+
 /* The unseen_objects list contains objects that have been registered
    but not yet categorized in any way.  The seen_objects list has had
    it's pc_begin and count fields initialized at minimum, and is sorted
    by decreasing value of pc_begin.  */
+
+#if ! (defined (__MINGW32__ ) || defined (__CYGWIN__))
 static struct object *unseen_objects;
 static struct object *seen_objects;
+#else
+#define unseen_objects  (*(struct object**)(&__w32_sharedptr->dw2_unseen_objects))
+#define seen_objects    (*(struct object**)(&__w32_sharedptr->dw2_seen_objects))
+#endif
 
+#if !(defined (__MINGW32__ ) || defined (__CYGWIN__))
 #ifdef __GTHREAD_MUTEX_INIT
 static __gthread_mutex_t object_mutex = __GTHREAD_MUTEX_INIT;
 #else
 static __gthread_mutex_t object_mutex;
 #endif
+#else
+#define object_mutex  (__w32_sharedptr->dw2_object_mutex)
+#endif
 
 #ifdef __GTHREAD_MUTEX_INIT_FUNCTION
 static void
@@ -64,8 +78,15 @@
 static void
 init_object_mutex_once (void)
 {
+#if !(defined (__MINGW32__ ) || defined (__CYGWIN__))
   static __gthread_once_t once = __GTHREAD_ONCE_INIT;
+#else
+#define once  (__w32_sharedptr->dw2_once)
+#endif
   __gthread_once (&once, init_object_mutex);
+#if (defined (__MINGW32__ ) || defined (__CYGWIN__))
+#undef once
+#endif
 }
 #else
 #define init_object_mutex_once()
@@ -429,9 +450,13 @@
 fde_split (struct object *ob, fde_compare_t fde_compare,
 	   struct fde_vector *linear, struct fde_vector *erratic)
 {
-  static const fde *marker;
-  size_t count = linear->count;
+#if !(defined (__MINGW32__ ) || defined (__CYGWIN__))
+  static fde *marker;
+#else
+#define marker  (*(const fde **)&__w32_sharedptr->dw2_marker)
+#endif
   const fde **chain_end = &marker;
+  size_t count = linear->count;
   size_t i, j, k;
 
   /* This should optimize out, but it is wise to make sure this assumption
@@ -465,6 +490,9 @@
       erratic->array[k++] = linear->array[i];
   linear->count = j;
   erratic->count = k;
+#if (defined (__MINGW32__ ) || defined (__CYGWIN__))
+#undef marker
+#endif
 }
 
 #define SWAP(x,y) do { const fde * tmp = x; x = y; y = tmp; } while (0)
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/unwind-sjlj.c gcc-3.4.4-3/gcc/unwind-sjlj.c
--- gcc-3.4.4-3-orig/gcc/unwind-sjlj.c	2003-11-02 00:00:08.000000000 +0000
+++ gcc-3.4.4-3/gcc/unwind-sjlj.c	2005-06-03 21:03:34.000000000 +0100
@@ -35,6 +35,10 @@
 #include "unwind.h"
 #include "gthr.h"
 
+#if defined (__MINGW32__ ) || defined (__CYGWIN__)
+#include "config/i386/w32-shared-ptr.h"
+#endif
+
 #ifdef __USING_SJLJ_EXCEPTIONS__
 
 #ifdef DONT_USE_BUILTIN_SETJMP
@@ -95,12 +99,21 @@
 
 /* Manage the chain of registered function contexts.  */
 
+#if !(defined (__MINGW32__ ) || defined (__CYGWIN__))
 /* Single threaded fallback chain.  */
 static struct SjLj_Function_Context *fc_static;
+#else
+#define fc_static  (*(struct SjLj_Function_Context**)&__w32_sharedptr->sjlj_fc_static)
+#endif
 
 #if __GTHREADS
+#if !(defined (__MINGW32__ ) || defined (__CYGWIN__))
 static __gthread_key_t fc_key;
 static int use_fc_key = -1;
+#else
+#define fc_key      (__w32_sharedptr->sjlj_fc_key)
+#define use_fc_key  (__w32_sharedptr->sjlj_use_fc_key)
+#endif
 
 static void
 fc_key_init (void)
@@ -111,15 +124,26 @@
 static void
 fc_key_init_once (void)
 {
+#if !(defined (__MINGW32__ ) || defined (__CYGWIN__))
   static __gthread_once_t once = __GTHREAD_ONCE_INIT;
+#else
+#define once (__w32_sharedptr->sjlj_once)
+#endif
   if (__gthread_once (&once, fc_key_init) != 0 || use_fc_key < 0)
     use_fc_key = 0;
+#if defined (__MINGW32__ ) || defined (__CYGWIN__)
+#undef once
+#endif
 }
 #endif
 
 void
 _Unwind_SjLj_Register (struct SjLj_Function_Context *fc)
 {
+#if defined (__MINGW32__ ) || defined (__CYGWIN__)
+  W32_SHAREDPTR_INITIALIZE ();
+#endif
+
 #if __GTHREADS
   if (use_fc_key < 0)
     fc_key_init_once ();
@@ -140,6 +164,10 @@
 static inline struct SjLj_Function_Context *
 _Unwind_SjLj_GetContext (void)
 {
+#if defined (__MINGW32__ ) || defined (__CYGWIN__)
+  W32_SHAREDPTR_INITIALIZE ();
+#endif
+
 #if __GTHREADS
   if (use_fc_key < 0)
     fc_key_init_once ();
@@ -153,6 +181,10 @@
 static inline void
 _Unwind_SjLj_SetContext (struct SjLj_Function_Context *fc)
 {
+#if defined (__MINGW32__ ) || defined (__CYGWIN__)
+  W32_SHAREDPTR_INITIALIZE ();
+#endif
+
 #if __GTHREADS
   if (use_fc_key < 0)
     fc_key_init_once ();
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/varasm.c gcc-3.4.4-3/gcc/varasm.c
--- gcc-3.4.4-3-orig/gcc/varasm.c	2005-03-02 20:57:48.000000000 +0000
+++ gcc-3.4.4-3/gcc/varasm.c	2006-05-17 02:50:06.000000000 +0100
@@ -3608,7 +3608,11 @@
 	/* Allow conversions to struct or union types if the value
 	   inside is okay.  */
 	if (TREE_CODE (dest_type) == RECORD_TYPE
-	    || TREE_CODE (dest_type) == UNION_TYPE)
+	    || TREE_CODE (dest_type) == UNION_TYPE
+#ifdef GPC
+          || TREE_CODE (dest_type) == ARRAY_TYPE
+#endif
+          )
 	  return initializer_constant_valid_p (src, endtype);
       }
       break;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/gcc/version.c gcc-3.4.4-3/gcc/version.c
--- gcc-3.4.4-3-orig/gcc/version.c	2005-05-19 08:51:54.000000000 +0100
+++ gcc-3.4.4-3/gcc/version.c	2006-05-17 05:21:42.000000000 +0100
@@ -1,11 +1,18 @@
 #include "version.h"
+#ifdef GPC
+#include "p/version.h"
+#endif
 
 /* This is the string reported as the version number by all components
    of the compiler.  If you distribute a modified version of GCC,
    please modify this string to indicate that, e.g. by putting your
    organization's name in parentheses at the end of the string.  */
 
-const char version_string[] = "3.4.4";
+const char version_string[] = "3.4.4 (cygming special, gdc 0.12, using dmd 0.125"
+#ifdef GPC
+  ", gpc-" GPC_MAJOR "." GPC_MINOR "-" GPC_RELEASE_STRING
+#endif /* GPC */
+")";
 
 /* This is the location of the online document giving instructions for
    reporting bugs.  If you distribute a modified version of GCC,
@@ -14,4 +21,5 @@
    forward us bugs reported to you, if you determine that they are
    not bugs in your modifications.)  */
 
-const char bug_report_url[] = "<URL:http://gcc.gnu.org/bugs.html>";
+const char bug_report_url[] = "<URL:http://cygwin.com/problems.html>";
+
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/include/libiberty.h gcc-3.4.4-3/include/libiberty.h
--- gcc-3.4.4-3-orig/include/libiberty.h	2003-05-15 20:02:12.000000000 +0100
+++ gcc-3.4.4-3/include/libiberty.h	2005-06-03 21:03:38.000000000 +0100
@@ -1,6 +1,6 @@
 /* Function declarations for libiberty.
 
-   Copyright 2001, 2002 Free Software Foundation, Inc.
+   Copyright 2001, 2002, 2004 Free Software Foundation, Inc.
    
    Note - certain prototypes declared in this header file are for
    functions whoes implementation copyright does not belong to the
@@ -41,6 +41,8 @@
 
 #include "ansidecl.h"
 
+#include <stdio.h>
+
 #ifdef ANSI_PROTOTYPES
 /* Get a definition for size_t.  */
 #include <stddef.h>
@@ -74,7 +76,7 @@
    to find the declaration so provide a fully prototyped one.  If it
    is 1, we found it so don't provide any declaration at all.  */
 #if !HAVE_DECL_BASENAME
-#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (HAVE_DECL_BASENAME)
+#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__sun__) || defined (HAVE_DECL_BASENAME)
 extern char *basename PARAMS ((const char *));
 #else
 extern char *basename ();
@@ -274,7 +276,7 @@
 extern int pexecute PARAMS ((const char *, char * const *, const char *,
 			    const char *, char **, char **, int));
 
-/* Wait for pexecute to finish.  */
+/* Wait for a process created by pexecute.  */
 
 extern int pwait PARAMS ((int, int *, int));
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/include/pex-read.h gcc-3.4.4-3/include/pex-read.h
--- gcc-3.4.4-3-orig/include/pex-read.h	1970-01-01 00:00:00.000000000 +0000
+++ gcc-3.4.4-3/include/pex-read.h	2005-06-03 21:03:44.000000000 +0100
@@ -0,0 +1,41 @@
+/* Declarations of the pex-read functions for libiberty.
+   Copyright 2004 Free Software Foundation, Inc.
+
+   This program 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 2, or (at your option)
+   any later version.
+
+   This program 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 this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef PEX_READ_H
+#define PEX_READ_H
+
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ 
+/* Execute a program and read its standard output.  */
+
+extern FILE *pex_read (const char *, char * const *, const char *,
+		       const char *, char **, char **, int, int *);
+
+/* Wait for pex_read to finish.  */
+
+extern int pex_read_close (int, FILE *, int *, int);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PEX_READ_H */
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libf2c/configure gcc-3.4.4-3/libf2c/configure
--- gcc-3.4.4-3-orig/libf2c/configure	2004-05-18 10:08:40.000000000 +0100
+++ gcc-3.4.4-3/libf2c/configure	2006-05-13 17:35:36.000000000 +0100
@@ -2516,9 +2516,9 @@
 
 # avoid confusion in case the `makefile's from the f2c distribution have
 # got put here
-test -f libF77/makefile && mv libF77/makefile  libF77/makefile.ori
-test -f libI77/makefile && mv libI77/makefile  libI77/makefile.ori
-test -f libU77/makefile && mv libU77/makefile  libU77/makefile.ori
+# test -f libF77/makefile && mv libF77/makefile  libF77/makefile.ori
+# test -f libI77/makefile && mv libI77/makefile  libI77/makefile.ori
+# test -f libU77/makefile && mv libU77/makefile  libU77/makefile.ori
 
 subdirs="libU77 libI77 libF77"
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libf2c/configure.in gcc-3.4.4-3/libf2c/configure.in
--- gcc-3.4.4-3-orig/libf2c/configure.in	2003-02-20 09:08:30.000000000 +0000
+++ gcc-3.4.4-3/libf2c/configure.in	2005-06-03 21:03:38.000000000 +0100
@@ -83,9 +83,9 @@
 
 # avoid confusion in case the `makefile's from the f2c distribution have
 # got put here
-test -f libF77/makefile && mv libF77/makefile  libF77/makefile.ori
-test -f libI77/makefile && mv libI77/makefile  libI77/makefile.ori
-test -f libU77/makefile && mv libU77/makefile  libU77/makefile.ori
+# test -f libF77/makefile && mv libF77/makefile  libF77/makefile.ori
+# test -f libI77/makefile && mv libI77/makefile  libI77/makefile.ori
+# test -f libU77/makefile && mv libU77/makefile  libU77/makefile.ori
 
 AC_CONFIG_SUBDIRS(libU77 libI77 libF77)
 # Do Makefile first since g2c.h depends on it and shouldn't get an
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libf2c/libI77/config.h.in gcc-3.4.4-3/libf2c/libI77/config.h.in
--- gcc-3.4.4-3-orig/libf2c/libI77/config.h.in	2005-05-19 10:58:00.000000000 +0100
+++ gcc-3.4.4-3/libf2c/libI77/config.h.in	2005-06-03 21:03:38.000000000 +0100
@@ -1,4 +1,4 @@
-/* config.h.in.  Generated automatically from configure.in by autoheader 2.13.  */
+/* config.h.in.  Generated automatically from configure.in by autoheader.  */
 
 /* Define to empty if the keyword does not work.  */
 #undef const
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libf2c/libI77/endfile.c gcc-3.4.4-3/libf2c/libI77/endfile.c
--- gcc-3.4.4-3-orig/libf2c/libI77/endfile.c	2002-06-02 15:34:32.000000000 +0100
+++ gcc-3.4.4-3/libf2c/libI77/endfile.c	2006-05-13 17:35:36.000000000 +0100
@@ -11,6 +11,12 @@
 #include <stdlib.h>
 #include <string.h>
 
+#ifdef __MINGW32__
+#undef HAVE_FTRUNCATE
+#define HAVE_FTRUNCATE 1
+#define ftruncate _chsize
+#endif
+
 extern char *f__r_mode[], *f__w_mode[];
 
 integer
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libf2c/libI77/inquire.c gcc-3.4.4-3/libf2c/libI77/inquire.c
--- gcc-3.4.4-3-orig/libf2c/libI77/inquire.c	2002-06-04 03:24:26.000000000 +0100
+++ gcc-3.4.4-3/libf2c/libI77/inquire.c	2006-05-13 17:35:36.000000000 +0100
@@ -2,7 +2,7 @@
 #include "f2c.h"
 #include "fio.h"
 #include <string.h>
-#if defined (MSDOS) && !defined (GO32)
+#if (defined (MSDOS) && !defined (GO32)) || defined (_WIN32)
 #undef abs
 #undef min
 #undef max
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libf2c/libU77/config.hin gcc-3.4.4-3/libf2c/libU77/config.hin
--- gcc-3.4.4-3-orig/libf2c/libU77/config.hin	2003-06-05 17:36:12.000000000 +0100
+++ gcc-3.4.4-3/libf2c/libU77/config.hin	2005-06-03 21:03:38.000000000 +0100
@@ -1,4 +1,4 @@
-/* config.hin.  Generated automatically from configure.in by autoheader 2.13.  */
+/* config.hin.  Generated automatically from configure.in by autoheader.  */
 
 /* Define to empty if the keyword does not work.  */
 #undef const
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libf2c/libU77/dtime_.c gcc-3.4.4-3/libf2c/libU77/dtime_.c
--- gcc-3.4.4-3-orig/libf2c/libU77/dtime_.c	2002-06-04 03:25:48.000000000 +0100
+++ gcc-3.4.4-3/libf2c/libU77/dtime_.c	2005-06-03 21:03:40.000000000 +0100
@@ -78,16 +78,24 @@
 	    }
 	  else
 	    {
+#ifdef _GNU_H_WINDOWS32_STRUCTURES
 	      clock_freq = ((unsigned long long) freq.HighPart << 32)
-		+ ((unsigned) freq.LowPart);
+                           + ((unsigned) freq.LowPart);
+#else
+	      clock_freq = freq.QuadPart;
+#endif
 	    }
 	}
 
       if (!QueryPerformanceCounter (&counter_val))
 	return -1.0;
 
+#ifdef _GNU_H_WINDOWS32_STRUCTURES
       count = ((unsigned long long) counter_val.HighPart << 32)
-	+ (unsigned) counter_val.LowPart;
+              + (unsigned) counter_val.LowPart;
+#else
+      count = counter_val.QuadPart;
+#endif
       delta = ((double) (count - old_count)) / clock_freq;
       tarray[0] = (float) delta;
       tarray[1] = 0.0;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libf2c/libU77/etime_.c gcc-3.4.4-3/libf2c/libU77/etime_.c
--- gcc-3.4.4-3-orig/libf2c/libU77/etime_.c	2002-06-04 03:25:48.000000000 +0100
+++ gcc-3.4.4-3/libf2c/libU77/etime_.c	2005-06-03 21:03:40.000000000 +0100
@@ -78,20 +78,32 @@
 	    }
 	  else
 	    {
+#ifdef _GNU_H_WINDOWS32_STRUCTURES
 	      clock_freq = ((unsigned long long) freq.HighPart << 32)
-		+ ((unsigned) freq.LowPart);
+                           + ((unsigned) freq.LowPart);
+#else
+	      clock_freq = freq.QuadPart;
+#endif
 	      if (!QueryPerformanceCounter (&counter_val))
 		return -1.0;
+#ifdef _GNU_H_WINDOWS32_STRUCTURES
 	      old_count = ((unsigned long long) counter_val.HighPart << 32)
-		+ (unsigned) counter_val.LowPart;
+	                  + (unsigned) counter_val.LowPart;
+#else
+	      old_count = counter_val.QuadPart;
+#endif
 	    }
 	}
 
       if (!QueryPerformanceCounter (&counter_val))
 	return -1.0;
 
+#ifdef _GNU_H_WINDOWS32_STRUCTURES
       count = ((unsigned long long) counter_val.HighPart << 32)
-	+ (unsigned) counter_val.LowPart;
+              + (unsigned) counter_val.LowPart;
+#else
+      count = counter_val.QuadPart;
+#endif
       tarray[0] = usertime = (double) (count - old_count) / clock_freq;
       tarray[1] = systime = 0.0;
     }
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libf2c/libU77/sleep_.c gcc-3.4.4-3/libf2c/libU77/sleep_.c
--- gcc-3.4.4-3-orig/libf2c/libU77/sleep_.c	2002-06-01 13:38:32.000000000 +0100
+++ gcc-3.4.4-3/libf2c/libU77/sleep_.c	2005-06-03 21:03:40.000000000 +0100
@@ -22,12 +22,23 @@
 #if HAVE_UNISTD_H
 #  include <unistd.h>
 #endif
+#ifdef _WIN32
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef min
+#undef max
+#endif
 #include "f2c.h"
 
 /* Subroutine */
 int
 G77_sleep_0 (const integer * seconds)
 {
+#ifndef _WIN32
   (void) sleep ((unsigned int) *seconds);
+#else
+  /* w32api Sleep takes duration in millisecs  */
+  (void) Sleep (((unsigned int) *seconds) * 1000 );
+#endif
   return 0;
 }
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libf2c/libU77/sys_clock_.c gcc-3.4.4-3/libf2c/libU77/sys_clock_.c
--- gcc-3.4.4-3-orig/libf2c/libU77/sys_clock_.c	2002-06-01 13:38:32.000000000 +0100
+++ gcc-3.4.4-3/libf2c/libU77/sys_clock_.c	2005-06-03 21:03:40.000000000 +0100
@@ -40,6 +40,11 @@
 #if HAVE_UNISTD_H
 #  include <unistd.h>
 #endif
+#if defined (_WIN32)
+#  include <windows.h>
+#  undef min
+#  undef max
+#endif
 #include <errno.h>		/* for ENOSYS */
 #include "f2c.h"
 
@@ -47,7 +52,55 @@
 G77_system_clock_0 (integer * count, integer * count_rate,
 		    integer * count_max)
 {
-#if defined (HAVE_TIMES)
+#if defined (_WIN32)
+  /* Windows32 provides a slew of interfaces for getting time information;
+     we use the high resolution performance counters available on all ix86 
+     and Alphas. The downside is that all the information is 64bit. We
+     could use GetTickCount or timeGetTime interface, but then the resolution
+     is only 1.0e-3s. */
+
+  unsigned long long clock_freq;
+  unsigned long long cnt;
+  LARGE_INTEGER counter_val;
+  LARGE_INTEGER freq;
+  if (! QueryPerformanceFrequency (&freq))
+    {
+      errno = ENOSYS;
+      return -1;
+    }
+
+#ifdef _GNU_H_WINDOWS32_STRUCTURES
+  clock_freq = ((unsigned long long) freq.HighPart << 32)
+	       + ((unsigned) freq.LowPart);
+#else
+  clock_freq = freq.QuadPart;
+#endif
+  if (count_rate) 
+    {
+       /* the following cast is obviously dubious, but there is only so much
+          one can do with 32bit quantities. */
+      *count_rate = (unsigned long) clock_freq;
+    }
+  if (count_max)		/* optional arg present? */
+    *count_max = INT_MAX;		/* dubious */
+
+  if (! QueryPerformanceCounter (&counter_val))
+    {
+      errno = ENOSYS;
+      return -1;
+    }
+
+#ifdef _GNU_H_WINDOWS32_STRUCTURES
+  cnt = ((unsigned long long) counter_val.HighPart << 32)
+	+ ((unsigned) counter_val.LowPart);
+#else
+  cnt = counter_val.QuadPart;
+#endif
+  
+  /* another dubious cast. */
+  *count = (unsigned long) cnt;
+  return 0;
+#elif defined (HAVE_TIMES)
   struct tms buffer;
   unsigned long cnt;
   if (count_rate)
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libf2c/libU77/umask_.c gcc-3.4.4-3/libf2c/libU77/umask_.c
--- gcc-3.4.4-3-orig/libf2c/libU77/umask_.c	2002-06-01 13:38:32.000000000 +0100
+++ gcc-3.4.4-3/libf2c/libU77/umask_.c	2005-06-03 21:03:40.000000000 +0100
@@ -21,6 +21,9 @@
 #endif
 #include <sys/types.h>
 #include <sys/stat.h>
+#ifdef _WIN32
+#include <io.h>
+#endif
 #include "f2c.h"
 
 integer
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libffi/src/x86/win32.S gcc-3.4.4-3/libffi/src/x86/win32.S
--- gcc-3.4.4-3-orig/libffi/src/x86/win32.S	2003-10-21 20:01:58.000000000 +0100
+++ gcc-3.4.4-3/libffi/src/x86/win32.S	2005-06-03 21:03:40.000000000 +0100
@@ -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
@@ -134,6 +135,7 @@
         # 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
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/ChangeLog gcc-3.4.4-3/libiberty/ChangeLog
--- gcc-3.4.4-3-orig/libiberty/ChangeLog	2005-05-19 08:50:22.000000000 +0100
+++ gcc-3.4.4-3/libiberty/ChangeLog	2005-06-03 21:03:40.000000000 +0100
@@ -23,11 +23,33 @@
 
 	* GCC 3.4.0 released.
 
-2004-02-25  Ian Lance Taylor  <ian@wasabisystems.com>
+2004-03-17  Ian Lance Taylor  <ian@wasabisystems.com>
 
-	Taken from mainline:
+	* pex-unix.c (pexecute): Use vfork instead of fork, with
+	appropriate changes to make this safe.
+	* pex-common.h (STDERR_FILE_NO): Define.
 
-	2004-02-24  Ian Lance Taylor  <ian@wasabisystems.com>
+	* Makefile.in: Clean up REQUIRED_OFILES and CONFIGURED_OFILES for
+	an 80 column screen.  Run maint-deps.
+
+2004-03-09  Kelley Cook  <kcook@gcc.gnu.org>
+
+	* configure.ac: Bump version to 2.59.  Apply suggested autoupdates.
+	* acconfig.h: Delete redundant file.
+	* config.in: Regenerate.
+	* configure: Regenerate.
+
+2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
+
+	* configure: Regenerate for config/accross.m4 correction.
+
+2004-03-07  Andreas Jaeger  <aj@suse.de>
+
+	* testsuite/test-demangle.c: Include <string.h> and <stdlib.h> for
+	prototypes.
+	(main): Initialize style.
+
+2004-02-24  Ian Lance Taylor  <ian@wasabisystems.com>
 
 	* cp-demangle.h (enum d_builtin_type_print): Add D_PRINT_UNSIGNED,
 	D_PRINT_UNSIGNED_LONG, D_PRINT_LONG_LONG,
@@ -60,7 +82,7 @@
 	past ones which have been printed already.
 	* testsuite/demangle-expected: Add three test cases.
 
-	2004-02-23  Ian Lance Taylor  <ian@wasabisystems.com>
+2004-02-23  Ian Lance Taylor  <ian@wasabisystems.com>
 
 	* cp-demangle.c (__cxa_demangle): Adjust last patch to handle
 	empty string correctly.
@@ -71,6 +93,29 @@
 	(main): If IN_GLIBCPP_V3 is defined, test __cxa_demangle rather
 	than cplus_demangle_v3.
 
+	* dyn-string.c: Remove test of IN_LIBGCC2 and IN_GLIBCPP_V3 and
+	the associated #define of RETURN_ON_ALLOCATION_FAILURE.
+
+2004-02-16  Matt Kraai  <kraai@alumni.cmu.edu>
+
+	* regex.c: Include <ansidecl.h>.
+	(regcomp): Cast i to int.
+	(regerror): Add ATTRIBUTE_UNUSED to parameter preg.
+
+2004-01-25  Ian Lance Taylor  <ian@wasabisystems.com>
+
+	* configure.ac: Add m4_pattern_allow(LIBOBJS).
+	* configure: Regenerate.
+
+2004-01-22  DJ Delorie  <dj@redhat.com>
+
+	* Makefile.in: Convert to ./ throughout.  Rebuild dependencies
+	with explicit build rules.
+	(VPATH): Remove.
+	(.c.o): Poison.
+	* configure.ac (pexecute, LIBOBJS): Add ./ .
+	* maint-tool: Build dependencies with explicit rules.
+
 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
 
 	* strdup.c (strdup): Constify the argument.
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/Makefile.in gcc-3.4.4-3/libiberty/Makefile.in
--- gcc-3.4.4-3-orig/libiberty/Makefile.in	2004-01-14 21:27:28.000000000 +0000
+++ gcc-3.4.4-3/libiberty/Makefile.in	2005-06-03 21:03:40.000000000 +0100
@@ -28,7 +28,6 @@
 
 libiberty_topdir = @libiberty_topdir@
 srcdir = @srcdir@
-VPATH = @srcdir@
 
 prefix = @prefix@
 
@@ -70,8 +69,8 @@
 
 MAKEOVERRIDES =
 
-TARGETLIB = libiberty.a
-TESTLIB = testlib.a
+TARGETLIB = ./libiberty.a
+TESTLIB = ./testlib.a
 
 LIBOBJS = @LIBOBJS@
 
@@ -118,19 +117,19 @@
 INCDIR=$(srcdir)/$(MULTISRCTOP)../include
 
 COMPILE.c = $(CC) -c @DEFS@ $(LIBCFLAGS) -I. -I$(INCDIR) $(HDEFINES) @ac_libiberty_warn_cflags@
+
+# Just to make sure we don't use a built-in rule with VPATH
 .c.o:
-	if [ x"$(PICFLAG)" != x ]; then \
-	  $(COMPILE.c) $(PICFLAG) $< -o pic/$@; \
-	else true; fi
-	$(COMPILE.c) $< $(OUTPUT_OPTION)
+	false
 
 # NOTE: If you add new files to the library, add them to this list
 # (alphabetical), and add them to REQUIRED_OFILES, or
-# CONFIGURED_OFILES and funcs in configure.ac.
+# CONFIGURED_OFILES and funcs in configure.ac.  Also run "make maint-deps"
+# to build the new rules.
 CFILES = alloca.c argv.c asprintf.c atexit.c				\
 	basename.c bcmp.c bcopy.c bsearch.c bzero.c			\
 	calloc.c choose-temp.c clock.c concat.c cp-demangle.c		\
-	cp-demint.c cplus-dem.c						\
+	 cp-demint.c cplus-dem.c					\
 	dyn-string.c							\
 	fdmatch.c ffs.c fibheap.c floatformat.c fnmatch.c		\
 	getcwd.c getopt.c getopt1.c getpagesize.c getpwd.c getruntime.c	\
@@ -145,7 +144,8 @@
 	partition.c							\
 	 pex-djgpp.c pex-mpw.c pex-msdos.c pex-os2.c			\
 	 pex-unix.c pex-win32.c						\
-         physmem.c putenv.c						\
+	 pexrd-unix.c pexrd-generic.c					\
+	 physmem.c putenv.c						\
 	random.c regex.c rename.c rindex.c				\
 	safe-ctype.c setenv.c sigsetmask.c snprintf.c sort.c spaces.c	\
 	 splay-tree.c stpcpy.c stpncpy.c strcasecmp.c strchr.c strdup.c	\
@@ -158,45 +158,48 @@
 
 # These are always included in the library.  The first four are listed
 # first and by compile time to optimize parallel builds.
-REQUIRED_OFILES = regex.o cplus-dem.o cp-demangle.o cp-demint.o md5.o	\
-	alloca.o argv.o							\
-	choose-temp.o concat.o						\
-	dyn-string.o							\
-	fdmatch.o fibheap.o floatformat.o fnmatch.o			\
-	getopt.o getopt1.o getpwd.o getruntime.o			\
-	hashtab.o hex.o							\
-	lbasename.o							\
-	lrealpath.o							\
-	make-relative-prefix.o						\
-	make-temp-file.o						\
-	objalloc.o obstack.o						\
-	partition.o physmem.o @pexecute@						\
-	safe-ctype.o sort.o spaces.o splay-tree.o strerror.o		\
-	 strsignal.o							\
-	ternary.o							\
-	xatexit.o xexit.o xmalloc.o xmemdup.o xstrdup.o xstrerror.o
+REQUIRED_OFILES = ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o	\
+	./alloca.o ./argv.o						\
+	./choose-temp.o ./concat.o ./cp-demint.o			\
+	./dyn-string.o							\
+	./fdmatch.o ./fibheap.o ./floatformat.o ./fnmatch.o		\
+	./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o		\
+	./hashtab.o ./hex.o						\
+	./lbasename.o ./lrealpath.o					\
+	./make-relative-prefix.o ./make-temp-file.o			\
+	./objalloc.o ./obstack.o					\
+	./partition.o ./physmem.o @pexecute@				\
+	./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o ./strerror.o	\
+	 ./strsignal.o							\
+	./ternary.o							\
+	./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o	\
+	 ./xstrerror.o
 
 # These are all the objects that configure may add to the library via
 # $funcs or EXTRA_OFILES.  This list exists here only for "make
 # maint-missing" and "make check".
-CONFIGURED_OFILES = asprintf.o atexit.o					\
-	basename.o bcmp.o bcopy.o bsearch.o bzero.o			\
-	calloc.o clock.o copysign.o					\
-	_doprnt.o							\
-	ffs.o								\
-	getcwd.o getpagesize.o						\
-	index.o insque.o						\
-	memchr.o memcmp.o memcpy.o memmove.o mempcpy.o memset.o mkstemps.o \
-	pex-djgpp.o pex-mpw.o pex-msdos.o pex-os2.o			\
-	 pex-unix.o pex-win32.o						\
-	 putenv.o							\
-	random.o rename.o rindex.o					\
-	setenv.o sigsetmask.o snprintf.o stpcpy.o stpncpy.o strcasecmp.o \
-	 strchr.o strdup.o strncasecmp.o strncmp.o strrchr.o strstr.o	\
-	 strtod.o strtol.o strtoul.o					\
-	tmpnam.o							\
-	vasprintf.o vfork.o vfprintf.o vprintf.o vsnprintf.o vsprintf.o	\
-	waitpid.o
+CONFIGURED_OFILES = ./asprintf.o ./atexit.o				\
+	./basename.o ./bcmp.o ./bcopy.o ./bsearch.o ./bzero.o		\
+	./calloc.o ./clock.o ./copysign.o				\
+	./_doprnt.o							\
+	./ffs.o								\
+	./getcwd.o ./getpagesize.o					\
+	./index.o ./insque.o						\
+	./memchr.o ./memcmp.o ./memcpy.o ./memmove.o ./mempcpy.o	\
+	 ./memset.o ./mkstemps.o					\
+	./pex-djgpp.o ./pex-mpw.o ./pex-msdos.o ./pex-os2.o		\
+	 ./pex-unix.o ./pex-win32.o					\
+	 ./pexrd-unix.o ./pexrd-generic.o				\
+	 ./putenv.o							\
+	./random.o ./rename.o ./rindex.o				\
+	./setenv.o ./sigsetmask.o ./snprintf.o ./stpcpy.o ./stpncpy.o	\
+	 ./strcasecmp.o ./strchr.o ./strdup.o ./strncasecmp.o		\
+	 ./strncmp.o ./strrchr.o ./strstr.o				\
+	 ./strtod.o ./strtol.o ./strtoul.o				\
+	./tmpnam.o							\
+	./vasprintf.o ./vfork.o ./vfprintf.o ./vprintf.o ./vsnprintf.o	\
+	 ./vsprintf.o							\
+	./waitpid.o
 
 # These files are installed if the library has been configured to do so.
 INSTALLED_HEADERS =                                                     \
@@ -390,8 +393,8 @@
 # Depending on Makefile makes sure that config.status has been re-run
 # if needed.  This prevents problems with parallel builds.
 config.h: stamp-h ; @true
-stamp-h: config.in config.status Makefile
-	CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status
+stamp-h: $(srcdir)/config.in config.status Makefile
+	CONFIG_FILES= CONFIG_HEADERS=config.h:$(srcdir)/config.in $(SHELL) ./config.status
 
 config.status: $(srcdir)/configure $(srcdir)/config.table
 	$(SHELL) ./config.status --recheck
@@ -415,113 +418,658 @@
 # The dependencies in the remainder of this file are automatically
 # generated by "make maint-deps".  Manual edits will be lost.
 
-_doprnt.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
-alloca.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-argv.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-asprintf.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-atexit.o: config.h
-basename.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+./_doprnt.o: $(srcdir)/_doprnt.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/safe-ctype.h
-bsearch.o: config.h $(INCDIR)/ansidecl.h
-calloc.o: $(INCDIR)/ansidecl.h
-choose-temp.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-clock.o: config.h
-concat.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-copysign.o: $(INCDIR)/ansidecl.h
-cp-demangle.o: config.h $(INCDIR)/ansidecl.h $(srcdir)/cp-demangle.h \
-	$(INCDIR)/demangle.h $(INCDIR)/dyn-string.h $(INCDIR)/getopt.h \
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/_doprnt.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/_doprnt.c $(OUTPUT_OPTION)
+
+./alloca.o: $(srcdir)/alloca.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/libiberty.h
-cp-demint.o: config.h $(INCDIR)/ansidecl.h $(srcdir)/cp-demangle.h \
-	$(INCDIR)/demangle.h $(INCDIR)/libiberty.h
-cplus-dem.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/demangle.h \
-	$(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
-dyn-string.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/dyn-string.h \
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/alloca.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/alloca.c $(OUTPUT_OPTION)
+
+./argv.o: $(srcdir)/argv.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/argv.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/argv.c $(OUTPUT_OPTION)
+
+./asprintf.o: $(srcdir)/asprintf.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/asprintf.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/asprintf.c $(OUTPUT_OPTION)
+
+./atexit.o: $(srcdir)/atexit.c config.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/atexit.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/atexit.c $(OUTPUT_OPTION)
+
+./basename.o: $(srcdir)/basename.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+	$(INCDIR)/safe-ctype.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/basename.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/basename.c $(OUTPUT_OPTION)
+
+./bcmp.o: $(srcdir)/bcmp.c
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bcmp.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/bcmp.c $(OUTPUT_OPTION)
+
+./bcopy.o: $(srcdir)/bcopy.c
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bcopy.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/bcopy.c $(OUTPUT_OPTION)
+
+./bsearch.o: $(srcdir)/bsearch.c config.h $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bsearch.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/bsearch.c $(OUTPUT_OPTION)
+
+./bzero.o: $(srcdir)/bzero.c
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/bzero.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/bzero.c $(OUTPUT_OPTION)
+
+./calloc.o: $(srcdir)/calloc.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/calloc.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/calloc.c $(OUTPUT_OPTION)
+
+./choose-temp.o: $(srcdir)/choose-temp.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/libiberty.h
-fdmatch.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-fibheap.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/fibheap.h \
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/choose-temp.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/choose-temp.c $(OUTPUT_OPTION)
+
+./clock.o: $(srcdir)/clock.c config.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/clock.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/clock.c $(OUTPUT_OPTION)
+
+./concat.o: $(srcdir)/concat.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/libiberty.h
-floatformat.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/floatformat.h \
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/concat.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/concat.c $(OUTPUT_OPTION)
+
+./copysign.o: $(srcdir)/copysign.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/copysign.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/copysign.c $(OUTPUT_OPTION)
+
+./cp-demangle.o: $(srcdir)/cp-demangle.c config.h $(INCDIR)/ansidecl.h \
+	$(srcdir)/cp-demangle.h $(INCDIR)/demangle.h \
+	$(INCDIR)/dyn-string.h $(INCDIR)/getopt.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/cp-demangle.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/cp-demangle.c $(OUTPUT_OPTION)
+
+./cp-demint.o: $(srcdir)/cp-demint.c config.h $(INCDIR)/ansidecl.h \
+	$(srcdir)/cp-demangle.h $(INCDIR)/demangle.h \
 	$(INCDIR)/libiberty.h
-fnmatch.o: config.h $(INCDIR)/fnmatch.h $(INCDIR)/safe-ctype.h
-getcwd.o: config.h
-getopt.o: config.h $(INCDIR)/getopt.h
-getopt1.o: config.h $(INCDIR)/getopt.h
-getpagesize.o: config.h
-getpwd.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-getruntime.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-hashtab.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/hashtab.h \
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/cp-demint.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/cp-demint.c $(OUTPUT_OPTION)
+
+./cplus-dem.o: $(srcdir)/cplus-dem.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/demangle.h $(INCDIR)/libiberty.h \
+	$(INCDIR)/safe-ctype.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/cplus-dem.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/cplus-dem.c $(OUTPUT_OPTION)
+
+./dyn-string.o: $(srcdir)/dyn-string.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/dyn-string.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/dyn-string.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/dyn-string.c $(OUTPUT_OPTION)
+
+./fdmatch.o: $(srcdir)/fdmatch.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/fdmatch.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/fdmatch.c $(OUTPUT_OPTION)
+
+./ffs.o: $(srcdir)/ffs.c
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/ffs.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/ffs.c $(OUTPUT_OPTION)
+
+./fibheap.o: $(srcdir)/fibheap.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/fibheap.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/fibheap.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/fibheap.c $(OUTPUT_OPTION)
+
+./floatformat.o: $(srcdir)/floatformat.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/floatformat.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/floatformat.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/floatformat.c $(OUTPUT_OPTION)
+
+./fnmatch.o: $(srcdir)/fnmatch.c config.h $(INCDIR)/fnmatch.h \
+	$(INCDIR)/safe-ctype.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/fnmatch.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/fnmatch.c $(OUTPUT_OPTION)
+
+./getcwd.o: $(srcdir)/getcwd.c config.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getcwd.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/getcwd.c $(OUTPUT_OPTION)
+
+./getopt.o: $(srcdir)/getopt.c config.h $(INCDIR)/getopt.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getopt.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/getopt.c $(OUTPUT_OPTION)
+
+./getopt1.o: $(srcdir)/getopt1.c config.h $(INCDIR)/getopt.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getopt1.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/getopt1.c $(OUTPUT_OPTION)
+
+./getpagesize.o: $(srcdir)/getpagesize.c config.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getpagesize.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/getpagesize.c $(OUTPUT_OPTION)
+
+./getpwd.o: $(srcdir)/getpwd.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/libiberty.h
-hex.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getpwd.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/getpwd.c $(OUTPUT_OPTION)
+
+./getruntime.o: $(srcdir)/getruntime.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/getruntime.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/getruntime.c $(OUTPUT_OPTION)
+
+./hashtab.o: $(srcdir)/hashtab.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/hashtab.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/hashtab.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/hashtab.c $(OUTPUT_OPTION)
+
+./hex.o: $(srcdir)/hex.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
 	$(INCDIR)/safe-ctype.h
-lbasename.o: $(INCDIR)/ansidecl.h $(INCDIR)/filenames.h \
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/hex.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/hex.c $(OUTPUT_OPTION)
+
+./index.o: $(srcdir)/index.c
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/index.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/index.c $(OUTPUT_OPTION)
+
+./insque.o: $(srcdir)/insque.c
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/insque.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/insque.c $(OUTPUT_OPTION)
+
+./lbasename.o: $(srcdir)/lbasename.c $(INCDIR)/ansidecl.h $(INCDIR)/filenames.h \
 	$(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
-lrealpath.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-make-relative-prefix.o: config.h $(INCDIR)/ansidecl.h \
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/lbasename.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/lbasename.c $(OUTPUT_OPTION)
+
+./lrealpath.o: $(srcdir)/lrealpath.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/libiberty.h
-make-temp-file.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-md5.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/md5.h
-memchr.o: $(INCDIR)/ansidecl.h
-memcmp.o: $(INCDIR)/ansidecl.h
-memcpy.o: $(INCDIR)/ansidecl.h
-memmove.o: $(INCDIR)/ansidecl.h
-mempcpy.o: $(INCDIR)/ansidecl.h
-memset.o: $(INCDIR)/ansidecl.h
-mkstemps.o: config.h $(INCDIR)/ansidecl.h
-objalloc.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/objalloc.h
-obstack.o: config.h $(INCDIR)/obstack.h
-partition.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(INCDIR)/partition.h
-pex-djgpp.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(srcdir)/pex-common.h
-pex-mpw.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(srcdir)/pex-common.h
-pex-msdos.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(srcdir)/pex-common.h $(INCDIR)/safe-ctype.h
-pex-os2.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(srcdir)/pex-common.h
-pex-unix.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(srcdir)/pex-common.h
-pex-win32.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(srcdir)/pex-common.h
-physmem.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-putenv.o: config.h $(INCDIR)/ansidecl.h
-random.o: $(INCDIR)/ansidecl.h
-regex.o: config.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h
-rename.o: config.h $(INCDIR)/ansidecl.h
-safe-ctype.o: $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
-setenv.o: config.h $(INCDIR)/ansidecl.h
-sigsetmask.o: $(INCDIR)/ansidecl.h
-snprintf.o: $(INCDIR)/ansidecl.h
-sort.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/lrealpath.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/lrealpath.c $(OUTPUT_OPTION)
+
+./make-relative-prefix.o: $(srcdir)/make-relative-prefix.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/make-relative-prefix.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/make-relative-prefix.c $(OUTPUT_OPTION)
+
+./make-temp-file.o: $(srcdir)/make-temp-file.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/make-temp-file.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/make-temp-file.c $(OUTPUT_OPTION)
+
+./md5.o: $(srcdir)/md5.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/md5.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/md5.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/md5.c $(OUTPUT_OPTION)
+
+./memchr.o: $(srcdir)/memchr.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memchr.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/memchr.c $(OUTPUT_OPTION)
+
+./memcmp.o: $(srcdir)/memcmp.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memcmp.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/memcmp.c $(OUTPUT_OPTION)
+
+./memcpy.o: $(srcdir)/memcpy.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memcpy.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/memcpy.c $(OUTPUT_OPTION)
+
+./memmove.o: $(srcdir)/memmove.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memmove.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/memmove.c $(OUTPUT_OPTION)
+
+./mempcpy.o: $(srcdir)/mempcpy.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/mempcpy.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/mempcpy.c $(OUTPUT_OPTION)
+
+./memset.o: $(srcdir)/memset.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/memset.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/memset.c $(OUTPUT_OPTION)
+
+./mkstemps.o: $(srcdir)/mkstemps.c config.h $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/mkstemps.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/mkstemps.c $(OUTPUT_OPTION)
+
+./mpw.o: $(srcdir)/mpw.c
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/mpw.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/mpw.c $(OUTPUT_OPTION)
+
+./msdos.o: $(srcdir)/msdos.c
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/msdos.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/msdos.c $(OUTPUT_OPTION)
+
+./objalloc.o: $(srcdir)/objalloc.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/objalloc.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/objalloc.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/objalloc.c $(OUTPUT_OPTION)
+
+./obstack.o: $(srcdir)/obstack.c config.h $(INCDIR)/obstack.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/obstack.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/obstack.c $(OUTPUT_OPTION)
+
+./partition.o: $(srcdir)/partition.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h $(INCDIR)/partition.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/partition.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/partition.c $(OUTPUT_OPTION)
+
+./pex-djgpp.o: $(srcdir)/pex-djgpp.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-djgpp.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/pex-djgpp.c $(OUTPUT_OPTION)
+
+./pex-mpw.o: $(srcdir)/pex-mpw.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-mpw.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/pex-mpw.c $(OUTPUT_OPTION)
+
+./pex-msdos.o: $(srcdir)/pex-msdos.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h \
+	$(INCDIR)/safe-ctype.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-msdos.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/pex-msdos.c $(OUTPUT_OPTION)
+
+./pex-os2.o: $(srcdir)/pex-os2.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-os2.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/pex-os2.c $(OUTPUT_OPTION)
+
+./pex-unix.o: $(srcdir)/pex-unix.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-unix.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/pex-unix.c $(OUTPUT_OPTION)
+
+./pex-win32.o: $(srcdir)/pex-win32.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-win32.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/pex-win32.c $(OUTPUT_OPTION)
+
+./pexrd-generic.o: $(srcdir)/pexrd-generic.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pexrd-generic.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/pexrd-generic.c $(OUTPUT_OPTION)
+
+./pexrd-unix.o: $(srcdir)/pexrd-unix.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pexrd-unix.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/pexrd-unix.c $(OUTPUT_OPTION)
+
+./physmem.o: $(srcdir)/physmem.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/physmem.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/physmem.c $(OUTPUT_OPTION)
+
+./putenv.o: $(srcdir)/putenv.c config.h $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/putenv.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/putenv.c $(OUTPUT_OPTION)
+
+./random.o: $(srcdir)/random.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/random.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/random.c $(OUTPUT_OPTION)
+
+./regex.o: $(srcdir)/regex.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/xregex.h \
+	$(INCDIR)/xregex2.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/regex.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/regex.c $(OUTPUT_OPTION)
+
+./rename.o: $(srcdir)/rename.c config.h $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/rename.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/rename.c $(OUTPUT_OPTION)
+
+./rindex.o: $(srcdir)/rindex.c
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/rindex.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/rindex.c $(OUTPUT_OPTION)
+
+./safe-ctype.o: $(srcdir)/safe-ctype.c $(INCDIR)/ansidecl.h \
+	$(INCDIR)/safe-ctype.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/safe-ctype.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/safe-ctype.c $(OUTPUT_OPTION)
+
+./setenv.o: $(srcdir)/setenv.c config.h $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/setenv.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/setenv.c $(OUTPUT_OPTION)
+
+./sigsetmask.o: $(srcdir)/sigsetmask.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/sigsetmask.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/sigsetmask.c $(OUTPUT_OPTION)
+
+./snprintf.o: $(srcdir)/snprintf.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/snprintf.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/snprintf.c $(OUTPUT_OPTION)
+
+./sort.o: $(srcdir)/sort.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
 	$(INCDIR)/sort.h
-spaces.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-splay-tree.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(INCDIR)/splay-tree.h
-stpcpy.o: $(INCDIR)/ansidecl.h
-stpncpy.o: $(INCDIR)/ansidecl.h
-strcasecmp.o: $(INCDIR)/ansidecl.h
-strchr.o: $(INCDIR)/ansidecl.h
-strdup.o: $(INCDIR)/ansidecl.h
-strerror.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-strncasecmp.o: $(INCDIR)/ansidecl.h
-strncmp.o: $(INCDIR)/ansidecl.h
-strrchr.o: $(INCDIR)/ansidecl.h
-strsignal.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-strtod.o: $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
-strtol.o: config.h $(INCDIR)/safe-ctype.h
-strtoul.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
-ternary.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
-	$(INCDIR)/ternary.h
-vasprintf.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-vfork.o: $(INCDIR)/ansidecl.h
-vfprintf.o: $(INCDIR)/ansidecl.h
-vprintf.o: $(INCDIR)/ansidecl.h
-vsnprintf.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-vsprintf.o: $(INCDIR)/ansidecl.h
-waitpid.o: config.h
-xatexit.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-xexit.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-xmalloc.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-xmemdup.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-xstrdup.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
-xstrerror.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/sort.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/sort.c $(OUTPUT_OPTION)
+
+./spaces.o: $(srcdir)/spaces.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/spaces.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/spaces.c $(OUTPUT_OPTION)
+
+./splay-tree.o: $(srcdir)/splay-tree.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h $(INCDIR)/splay-tree.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/splay-tree.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/splay-tree.c $(OUTPUT_OPTION)
+
+./stpcpy.o: $(srcdir)/stpcpy.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/stpcpy.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/stpcpy.c $(OUTPUT_OPTION)
+
+./stpncpy.o: $(srcdir)/stpncpy.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/stpncpy.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/stpncpy.c $(OUTPUT_OPTION)
+
+./strcasecmp.o: $(srcdir)/strcasecmp.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strcasecmp.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/strcasecmp.c $(OUTPUT_OPTION)
+
+./strchr.o: $(srcdir)/strchr.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strchr.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/strchr.c $(OUTPUT_OPTION)
+
+./strdup.o: $(srcdir)/strdup.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strdup.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/strdup.c $(OUTPUT_OPTION)
+
+./strerror.o: $(srcdir)/strerror.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strerror.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/strerror.c $(OUTPUT_OPTION)
+
+./strncasecmp.o: $(srcdir)/strncasecmp.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strncasecmp.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/strncasecmp.c $(OUTPUT_OPTION)
+
+./strncmp.o: $(srcdir)/strncmp.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strncmp.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/strncmp.c $(OUTPUT_OPTION)
+
+./strrchr.o: $(srcdir)/strrchr.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strrchr.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/strrchr.c $(OUTPUT_OPTION)
+
+./strsignal.o: $(srcdir)/strsignal.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strsignal.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/strsignal.c $(OUTPUT_OPTION)
+
+./strstr.o: $(srcdir)/strstr.c
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strstr.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/strstr.c $(OUTPUT_OPTION)
+
+./strtod.o: $(srcdir)/strtod.c $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strtod.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/strtod.c $(OUTPUT_OPTION)
+
+./strtol.o: $(srcdir)/strtol.c config.h $(INCDIR)/safe-ctype.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strtol.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/strtol.c $(OUTPUT_OPTION)
+
+./strtoul.o: $(srcdir)/strtoul.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/safe-ctype.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/strtoul.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/strtoul.c $(OUTPUT_OPTION)
+
+./ternary.o: $(srcdir)/ternary.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h $(INCDIR)/ternary.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/ternary.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/ternary.c $(OUTPUT_OPTION)
+
+./tmpnam.o: $(srcdir)/tmpnam.c
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/tmpnam.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/tmpnam.c $(OUTPUT_OPTION)
+
+./vasprintf.o: $(srcdir)/vasprintf.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vasprintf.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/vasprintf.c $(OUTPUT_OPTION)
+
+./vfork.o: $(srcdir)/vfork.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vfork.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/vfork.c $(OUTPUT_OPTION)
+
+./vfprintf.o: $(srcdir)/vfprintf.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vfprintf.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/vfprintf.c $(OUTPUT_OPTION)
+
+./vprintf.o: $(srcdir)/vprintf.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vprintf.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/vprintf.c $(OUTPUT_OPTION)
+
+./vsnprintf.o: $(srcdir)/vsnprintf.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vsnprintf.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/vsnprintf.c $(OUTPUT_OPTION)
+
+./vsprintf.o: $(srcdir)/vsprintf.c $(INCDIR)/ansidecl.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vsprintf.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/vsprintf.c $(OUTPUT_OPTION)
+
+./waitpid.o: $(srcdir)/waitpid.c config.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/waitpid.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/waitpid.c $(OUTPUT_OPTION)
+
+./xatexit.o: $(srcdir)/xatexit.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xatexit.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/xatexit.c $(OUTPUT_OPTION)
+
+./xexit.o: $(srcdir)/xexit.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xexit.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/xexit.c $(OUTPUT_OPTION)
+
+./xmalloc.o: $(srcdir)/xmalloc.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xmalloc.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/xmalloc.c $(OUTPUT_OPTION)
+
+./xmemdup.o: $(srcdir)/xmemdup.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xmemdup.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/xmemdup.c $(OUTPUT_OPTION)
+
+./xstrdup.o: $(srcdir)/xstrdup.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xstrdup.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/xstrdup.c $(OUTPUT_OPTION)
+
+./xstrerror.o: $(srcdir)/xstrerror.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xstrerror.c -o pic/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/xstrerror.c $(OUTPUT_OPTION)
+
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/config.in gcc-3.4.4-3/libiberty/config.in
--- gcc-3.4.4-3-orig/libiberty/config.in	2004-01-10 02:17:42.000000000 +0000
+++ gcc-3.4.4-3/libiberty/config.in	2006-05-13 17:35:36.000000000 +0100
@@ -1,7 +1,4 @@
 /* config.in.  Generated from configure.ac by autoheader.  */
-/* Define to `unsigned long' if <sys/types.h> doesn't define.  */
-#undef uintptr_t
-
 
 /* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
 #undef BYTEORDER
@@ -362,9 +359,11 @@
 /* Define to empty if `const' does not conform to ANSI C. */
 #undef const
 
-/* Define as `__inline' if that's what the C compiler calls it, or to nothing
-   if it is not supported. */
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
 #undef inline
+#endif
 
 /* Define to `int' if <sys/types.h> does not define. */
 #undef pid_t
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/configure gcc-3.4.4-3/libiberty/configure
--- gcc-3.4.4-3-orig/libiberty/configure	2003-10-01 18:11:30.000000000 +0100
+++ gcc-3.4.4-3/libiberty/configure	2006-05-13 17:35:36.000000000 +0100
@@ -1,9 +1,8 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.57.
+# Generated by GNU Autoconf 2.59.
 #
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 2003 Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 ## --------------------- ##
@@ -20,9 +19,10 @@
 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
   set -o posix
 fi
+DUALCASE=1; export DUALCASE # for MKS sh
 
 # Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   as_unset=unset
 else
   as_unset=false
@@ -41,7 +41,7 @@
   LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
   LC_TELEPHONE LC_TIME
 do
-  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
     eval $as_var=C; export $as_var
   else
     $as_unset $as_var
@@ -218,16 +218,17 @@
 if mkdir -p . 2>/dev/null; then
   as_mkdir_p=:
 else
+  test -d ./-p && rmdir ./-p
   as_mkdir_p=false
 fi
 
 as_executable_p="test -f"
 
 # Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 
 # Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 # IFS
@@ -667,7 +668,7 @@
 
 # Be sure to have absolute paths.
 for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-              localstatedir libdir includedir oldincludedir infodir mandir
+	      localstatedir libdir includedir oldincludedir infodir mandir
 do
   eval ac_val=$`echo $ac_var`
   case $ac_val in
@@ -707,10 +708,10 @@
   # Try the directory containing this script, then its parent.
   ac_confdir=`(dirname "$0") 2>/dev/null ||
 $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$0" : 'X\(//\)[^/]' \| \
-         X"$0" : 'X\(//\)$' \| \
-         X"$0" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
+	 X"$0" : 'X\(//\)[^/]' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
 echo X"$0" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -802,9 +803,9 @@
   cat <<_ACEOF
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
+			  [$ac_default_prefix]
   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
+			  [PREFIX]
 
 By default, \`make install' will install all the files in
 \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
@@ -901,12 +902,45 @@
     ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
     ac_top_srcdir=$ac_top_builddir$srcdir ;;
 esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
 
     cd $ac_dir
     # Check for guested configure; otherwise get Cygnus style configure.
@@ -917,7 +951,7 @@
       echo
       $SHELL $ac_srcdir/configure  --help=recursive
     elif test -f $ac_srcdir/configure.ac ||
-           test -f $ac_srcdir/configure.in; then
+	   test -f $ac_srcdir/configure.in; then
       echo
       $ac_configure --help
     else
@@ -931,8 +965,7 @@
 if $ac_init_version; then
   cat <<\_ACEOF
 
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-Free Software Foundation, Inc.
+Copyright (C) 2003 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -944,7 +977,7 @@
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.57.  Invocation command line was
+generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
 
@@ -1021,19 +1054,19 @@
     2)
       ac_configure_args1="$ac_configure_args1 '$ac_arg'"
       if test $ac_must_keep_next = true; then
-        ac_must_keep_next=false # Got value, back to normal.
+	ac_must_keep_next=false # Got value, back to normal.
       else
-        case $ac_arg in
-          *=* | --config-cache | -C | -disable-* | --disable-* \
-          | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-          | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-          | -with-* | --with-* | -without-* | --without-* | --x)
-            case "$ac_configure_args0 " in
-              "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-            esac
-            ;;
-          -* ) ac_must_keep_next=true ;;
-        esac
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
       fi
       ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
       # Get rid of the leading space.
@@ -1067,12 +1100,12 @@
     case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
     *ac_space=\ *)
       sed -n \
-        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
       ;;
     *)
       sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
       ;;
     esac;
 }
@@ -1101,7 +1134,7 @@
       for ac_var in $ac_subst_files
       do
 	eval ac_val=$`echo $ac_var`
-        echo "$ac_var='"'"'$ac_val'"'"'"
+	echo "$ac_var='"'"'$ac_val'"'"'"
       done | sort
       echo
     fi
@@ -1120,7 +1153,7 @@
       echo "$as_me: caught signal $ac_signal"
     echo "$as_me: exit $exit_status"
   } >&5
-  rm -f core core.* *.core &&
+  rm -f core *.core &&
   rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
     exit $exit_status
      ' 0
@@ -1200,7 +1233,7 @@
 # value.
 ac_cache_corrupted=false
 for ac_var in `(set) 2>&1 |
-               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
   eval ac_old_set=\$ac_cv_env_${ac_var}_set
   eval ac_new_set=\$ac_env_${ac_var}_set
   eval ac_old_val="\$ac_cv_env_${ac_var}_value"
@@ -1217,13 +1250,13 @@
     ,);;
     *)
       if test "x$ac_old_val" != "x$ac_new_val"; then
-        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
 echo "$as_me:   former value:  $ac_old_val" >&2;}
-        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
 echo "$as_me:   current value: $ac_new_val" >&2;}
-        ac_cache_corrupted=:
+	ac_cache_corrupted=:
       fi;;
   esac
   # Pass precious variables to config.status.
@@ -2030,7 +2063,6 @@
   (exit $ac_status); }
 
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2064,7 +2096,6 @@
   EXEEXT=
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2084,8 +2115,8 @@
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output" >&5
-echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
   (eval $ac_link_default) 2>&5
@@ -2105,23 +2136,23 @@
   test -f "$ac_file" || continue
   case $ac_file in
     *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
-        ;;
+	;;
     conftest.$ac_ext )
-        # This is the source file.
-        ;;
+	# This is the source file.
+	;;
     [ab].out )
-        # We found the default executable, but exeext='' is most
-        # certainly right.
-        break;;
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
     *.* )
-        ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-        # FIXME: I believe we export ac_cv_exeext for Libtool,
-        # but it would be cool to find out if it's true.  Does anybody
-        # maintain Libtool? --akim.
-        export ac_cv_exeext
-        break;;
+	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	# FIXME: I believe we export ac_cv_exeext for Libtool,
+	# but it would be cool to find out if it's true.  Does anybody
+	# maintain Libtool? --akim.
+	export ac_cv_exeext
+	break;;
     * )
-        break;;
+	break;;
   esac
 done
 else
@@ -2195,8 +2226,8 @@
   case $ac_file in
     *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-          export ac_cv_exeext
-          break;;
+	  export ac_cv_exeext
+	  break;;
     * ) break;;
   esac
 done
@@ -2222,7 +2253,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2273,7 +2303,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2293,11 +2322,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2310,7 +2349,7 @@
 
 ac_compiler_gnu=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
@@ -2326,7 +2365,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2343,11 +2381,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2360,7 +2408,7 @@
 
 ac_cv_prog_cc_g=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
@@ -2387,7 +2435,6 @@
   ac_cv_prog_cc_stdc=no
 ac_save_CC=$CC
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2415,6 +2462,16 @@
   va_end (v);
   return s;
 }
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std1 is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std1.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
 int test (int i, double x);
 struct s1 {int (*f) (int a);};
 struct s2 {int (*f) (double a);};
@@ -2441,11 +2498,21 @@
   CC="$ac_save_CC $ac_arg"
   rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2458,7 +2525,7 @@
 sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-rm -f conftest.$ac_objext
+rm -f conftest.err conftest.$ac_objext
 done
 rm -f conftest.$ac_ext conftest.$ac_objext
 CC=$ac_save_CC
@@ -2486,19 +2553,28 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   for ac_declaration in \
-   ''\
-   '#include <stdlib.h>' \
+   '' \
    'extern "C" void std::exit (int) throw (); using std::exit;' \
    'extern "C" void std::exit (int); using std::exit;' \
    'extern "C" void exit (int) throw ();' \
@@ -2506,14 +2582,13 @@
    'void exit (int);'
 do
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <stdlib.h>
 $ac_declaration
+#include <stdlib.h>
 int
 main ()
 {
@@ -2524,11 +2599,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2541,9 +2626,8 @@
 
 continue
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2560,11 +2644,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2576,7 +2670,7 @@
 sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 done
 rm -f conftest*
 if test -n "$ac_declaration"; then
@@ -2590,7 +2684,7 @@
 sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -2625,7 +2719,6 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2636,7 +2729,7 @@
 #else
 # include <assert.h>
 #endif
-                     Syntax error
+		     Syntax error
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
@@ -2648,6 +2741,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -2668,7 +2762,6 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2686,6 +2779,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -2732,7 +2826,6 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2743,7 +2836,7 @@
 #else
 # include <assert.h>
 #endif
-                     Syntax error
+		     Syntax error
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
@@ -2755,6 +2848,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -2775,7 +2869,6 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2793,6 +2886,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -2852,7 +2946,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2903,11 +2996,11 @@
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); };
       then
-        # cc works too.
-        :
+	# cc works too.
+	:
       else
-        # cc exists but doesn't like -o.
-        eval ac_cv_prog_cc_${ac_cc}_c_o=no
+	# cc exists but doesn't like -o.
+	eval ac_cv_prog_cc_${ac_cc}_c_o=no
       fi
     fi
   fi
@@ -2946,7 +3039,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3009,11 +3101,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3026,7 +3128,7 @@
 
 ac_cv_c_const=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
 echo "${ECHO_T}$ac_cv_c_const" >&6
@@ -3046,7 +3148,6 @@
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3061,11 +3162,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3077,23 +3188,27 @@
 sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 done
 
 fi
 echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
 echo "${ECHO_T}$ac_cv_c_inline" >&6
+
+
 case $ac_cv_c_inline in
   inline | yes) ;;
-  no)
-cat >>confdefs.h <<\_ACEOF
-#define inline
-_ACEOF
- ;;
-  *)  cat >>confdefs.h <<_ACEOF
-#define inline $ac_cv_c_inline
+  *)
+    case $ac_cv_c_inline in
+      no) ac_val=;;
+      *) ac_val=$ac_cv_c_inline;;
+    esac
+    cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
 _ACEOF
- ;;
+    ;;
 esac
 
 echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
@@ -3104,7 +3219,6 @@
   ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3125,11 +3239,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3137,7 +3261,6 @@
   (exit $ac_status); }; }; then
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3158,11 +3281,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3175,19 +3308,18 @@
 
 ac_cv_c_bigendian=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 if test $ac_cv_c_bigendian = unknown; then
 if test "$cross_compiling" = yes; then
    echo $ac_n "cross-compiling... " 2>&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3224,7 +3356,7 @@
 ( exit $ac_status )
 ac_cv_c_bigendian=yes
 fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 fi
@@ -3244,7 +3376,7 @@
 int main() { _ascii (); _ebcdic (); return 0; }
 EOF
  if test -f conftest.c ; then
-     if ${CC-cc} ${CFLAGS} conftest.c -o conftest.o && test -f conftest.o ; then
+     if ${CC-cc} ${CFLAGS} -c conftest.c -o conftest.o && test -f conftest.o ; then
         if test `grep -l BIGenDianSyS conftest.o` ; then
            echo $ac_n ' big endian probe OK, ' 1>&6
            ac_cv_c_bigendian=yes
@@ -3284,9 +3416,9 @@
 _ACEOF
 
 if test $ac_cv_c_bigendian = unknown; then
-  { { echo "$as_me:$LINENO: error: unknown endianess - sorry" >&5
-echo "$as_me: error: unknown endianess - sorry" >&2;}
-   { (exit please pre-set ac_cv_c_bigendian); exit please pre-set ac_cv_c_bigendian; }; }
+  { { echo "$as_me:$LINENO: error: unknown endianess - sorry, please pre-set ac_cv_c_bigendian" >&5
+echo "$as_me: error: unknown endianess - sorry, please pre-set ac_cv_c_bigendian" >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
 
@@ -3307,6 +3439,7 @@
 # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
 echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
@@ -3323,6 +3456,7 @@
 case $as_dir/ in
   ./ | .// | /cC/* | \
   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
   /usr/ucb/* ) ;;
   *)
     # OSF1 and SCO ODT 3.0 have their own names for install.
@@ -3330,20 +3464,20 @@
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-          if test $ac_prog = install &&
-            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-            # AIX install.  It has an incompatible calling convention.
-            :
-          elif test $ac_prog = install &&
-            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-            # program-specific install script used by HP pwplus--don't use.
-            :
-          else
-            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-            break 3
-          fi
-        fi
+	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	    break 3
+	  fi
+	fi
       done
     done
     ;;
@@ -3413,7 +3547,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3431,6 +3564,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -3463,7 +3597,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3490,11 +3623,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3507,7 +3650,7 @@
 
 ac_cv_header_sys_wait_h=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
 echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6
@@ -3525,7 +3668,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3546,11 +3688,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3563,7 +3715,7 @@
 
 ac_cv_header_time=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
 echo "${ECHO_T}$ac_cv_header_time" >&6
@@ -3582,7 +3734,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3599,11 +3750,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3616,7 +3777,7 @@
 
 libiberty_cv_declare_errno=yes
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: $libiberty_cv_declare_errno" >&5
 echo "${ECHO_T}$libiberty_cv_declare_errno" >&6
@@ -3650,7 +3811,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3671,11 +3831,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3688,12 +3858,11 @@
 
 ac_cv_header_stdc=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3715,7 +3884,6 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3740,7 +3908,6 @@
   :
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3752,9 +3919,9 @@
 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
 #else
 # define ISLOWER(c) \
-                   (('a' <= (c) && (c) <= 'i') \
-                     || ('j' <= (c) && (c) <= 'r') \
-                     || ('s' <= (c) && (c) <= 'z'))
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
 #endif
 
@@ -3765,7 +3932,7 @@
   int i;
   for (i = 0; i < 256; i++)
     if (XOR (islower (i), ISLOWER (i))
-        || toupper (i) != TOUPPER (i))
+	|| toupper (i) != TOUPPER (i))
       exit(2);
   exit (0);
 }
@@ -3790,7 +3957,7 @@
 ( exit $ac_status )
 ac_cv_header_stdc=no
 fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 fi
@@ -3815,7 +3982,7 @@
 
 
 for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-                  inttypes.h stdint.h unistd.h
+		  inttypes.h stdint.h unistd.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_header" >&5
@@ -3824,7 +3991,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3842,6 +4008,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -3875,7 +4042,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3895,11 +4061,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3912,7 +4088,7 @@
 
 ac_cv_type_uintptr_t=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: $ac_cv_type_uintptr_t" >&5
 echo "${ECHO_T}$ac_cv_type_uintptr_t" >&6
@@ -3941,7 +4117,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3961,11 +4136,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3978,7 +4163,7 @@
 
 ac_cv_type_pid_t=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
 echo "${ECHO_T}$ac_cv_type_pid_t" >&6
@@ -4139,7 +4324,6 @@
    { (exit 1); exit 1; }; }
 fi
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4186,11 +4370,21 @@
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4203,7 +4397,8 @@
 
 eval "$as_ac_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
@@ -4250,12 +4445,54 @@
   # newlib provide and which ones we will be expected to provide.
 
   if test "x${with_newlib}" = "xyes"; then
-    LIBOBJS="$LIBOBJS asprintf.$ac_objext"
-    LIBOBJS="$LIBOBJS basename.$ac_objext"
-    LIBOBJS="$LIBOBJS insque.$ac_objext"
-    LIBOBJS="$LIBOBJS random.$ac_objext"
-    LIBOBJS="$LIBOBJS strdup.$ac_objext"
-    LIBOBJS="$LIBOBJS vasprintf.$ac_objext"
+    case $LIBOBJS in
+    "asprintf.$ac_objext"   | \
+  *" asprintf.$ac_objext"   | \
+    "asprintf.$ac_objext "* | \
+  *" asprintf.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS asprintf.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "basename.$ac_objext"   | \
+  *" basename.$ac_objext"   | \
+    "basename.$ac_objext "* | \
+  *" basename.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS basename.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "insque.$ac_objext"   | \
+  *" insque.$ac_objext"   | \
+    "insque.$ac_objext "* | \
+  *" insque.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS insque.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "random.$ac_objext"   | \
+  *" random.$ac_objext"   | \
+    "random.$ac_objext "* | \
+  *" random.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS random.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "strdup.$ac_objext"   | \
+  *" strdup.$ac_objext"   | \
+    "strdup.$ac_objext "* | \
+  *" strdup.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS strdup.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "vasprintf.$ac_objext"   | \
+  *" vasprintf.$ac_objext"   | \
+    "vasprintf.$ac_objext "* | \
+  *" vasprintf.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS vasprintf.$ac_objext" ;;
+esac
+
 
     for f in $funcs; do
       case "$f" in
@@ -4337,16 +4574,86 @@
     # Handle VxWorks configuration specially, since on VxWorks the
     # libraries are actually on the target board, not in the file
     # system.
-    LIBOBJS="$LIBOBJS basename.$ac_objext"
-    LIBOBJS="$LIBOBJS getpagesize.$ac_objext"
-    LIBOBJS="$LIBOBJS insque.$ac_objext"
-    LIBOBJS="$LIBOBJS random.$ac_objext"
-    LIBOBJS="$LIBOBJS strcasecmp.$ac_objext"
-    LIBOBJS="$LIBOBJS strncasecmp.$ac_objext"
-    LIBOBJS="$LIBOBJS strdup.$ac_objext"
-    LIBOBJS="$LIBOBJS vfork.$ac_objext"
-    LIBOBJS="$LIBOBJS waitpid.$ac_objext"
-    LIBOBJS="$LIBOBJS vasprintf.$ac_objext"
+    case $LIBOBJS in
+    "basename.$ac_objext"   | \
+  *" basename.$ac_objext"   | \
+    "basename.$ac_objext "* | \
+  *" basename.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS basename.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "getpagesize.$ac_objext"   | \
+  *" getpagesize.$ac_objext"   | \
+    "getpagesize.$ac_objext "* | \
+  *" getpagesize.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS getpagesize.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "insque.$ac_objext"   | \
+  *" insque.$ac_objext"   | \
+    "insque.$ac_objext "* | \
+  *" insque.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS insque.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "random.$ac_objext"   | \
+  *" random.$ac_objext"   | \
+    "random.$ac_objext "* | \
+  *" random.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS random.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "strcasecmp.$ac_objext"   | \
+  *" strcasecmp.$ac_objext"   | \
+    "strcasecmp.$ac_objext "* | \
+  *" strcasecmp.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS strcasecmp.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "strncasecmp.$ac_objext"   | \
+  *" strncasecmp.$ac_objext"   | \
+    "strncasecmp.$ac_objext "* | \
+  *" strncasecmp.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS strncasecmp.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "strdup.$ac_objext"   | \
+  *" strdup.$ac_objext"   | \
+    "strdup.$ac_objext "* | \
+  *" strdup.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS strdup.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "vfork.$ac_objext"   | \
+  *" vfork.$ac_objext"   | \
+    "vfork.$ac_objext "* | \
+  *" vfork.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS vfork.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "waitpid.$ac_objext"   | \
+  *" waitpid.$ac_objext"   | \
+    "waitpid.$ac_objext "* | \
+  *" waitpid.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS waitpid.$ac_objext" ;;
+esac
+
+    case $LIBOBJS in
+    "vasprintf.$ac_objext"   | \
+  *" vasprintf.$ac_objext"   | \
+    "vasprintf.$ac_objext "* | \
+  *" vasprintf.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS vasprintf.$ac_objext" ;;
+esac
+
     for f in $funcs; do
       case "$f" in
 	basename | getpagesize | insque | random | strcasecmp)
@@ -4399,7 +4706,14 @@
     if test -n "${with_target_subdir}"
     then
       funcs="`echo $funcs | sed -e 's/random//'`"
-      LIBOBJS="$LIBOBJS random.$ac_objext"
+      case $LIBOBJS in
+    "random.$ac_objext"   | \
+  *" random.$ac_objext"   | \
+    "random.$ac_objext "* | \
+  *" random.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS random.$ac_objext" ;;
+esac
+
       vars="`echo $vars | sed -e 's/sys_siglist//'`"
       checkfuncs="`echo $checkfuncs | sed -e 's/strsignal//' -e 's/psignal//'`"
     fi
@@ -4448,7 +4762,6 @@
    { (exit 1); exit 1; }; }
 fi
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4472,11 +4785,21 @@
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4488,7 +4811,8 @@
 sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 if test "$ac_cv_search_strerror" = no; then
   for ac_lib in cposix; do
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
@@ -4498,7 +4822,6 @@
    { (exit 1); exit 1; }; }
 fi
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4522,11 +4845,21 @@
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4539,7 +4872,8 @@
 sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
   done
 fi
 LIBS=$ac_func_search_save_LIBS
@@ -4566,7 +4900,6 @@
    { (exit 1); exit 1; }; }
 fi
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4613,11 +4946,21 @@
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4630,7 +4973,8 @@
 
 eval "$as_ac_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
@@ -4640,7 +4984,14 @@
 _ACEOF
 
 else
-  LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
+  case $LIBOBJS in
+    "$ac_func.$ac_objext"   | \
+  *" $ac_func.$ac_objext"   | \
+    "$ac_func.$ac_objext "* | \
+  *" $ac_func.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;;
+esac
+
 fi
 done
 
@@ -4651,7 +5002,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4689,7 +5039,6 @@
    { (exit 1); exit 1; }; }
 fi
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4736,11 +5085,21 @@
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4753,7 +5112,8 @@
 
 eval "$as_ac_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
@@ -4777,7 +5137,6 @@
   ac_cv_c_stack_direction=0
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4820,7 +5179,7 @@
 ( exit $ac_status )
 ac_cv_c_stack_direction=-1
 fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
@@ -4842,7 +5201,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4860,6 +5218,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -4902,7 +5261,6 @@
    { (exit 1); exit 1; }; }
 fi
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4949,11 +5307,21 @@
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4966,7 +5334,8 @@
 
 eval "$as_ac_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
@@ -4996,9 +5365,9 @@
       /* Some systems only have a dummy stub for fork() */
       int main ()
       {
-        if (fork() < 0)
-          exit (1);
-        exit (0);
+	if (fork() < 0)
+	  exit (1);
+	exit (0);
       }
 _ACEOF
 rm -f conftest$ac_exeext
@@ -5021,7 +5390,7 @@
 ( exit $ac_status )
 ac_cv_func_fork_works=no
 fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 echo "$as_me:$LINENO: result: $ac_cv_func_fork_works" >&5
@@ -5054,7 +5423,6 @@
   ac_cv_func_vfork_works=cross
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -5176,7 +5544,7 @@
 ( exit $ac_status )
 ac_cv_func_vfork_works=no
 fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 echo "$as_me:$LINENO: result: $ac_cv_func_vfork_works" >&5
@@ -5184,7 +5552,7 @@
 
 fi;
 if test "x$ac_cv_func_fork_works" = xcross; then
-  ac_cv_func_vfork_works=ac_cv_func_vfork
+  ac_cv_func_vfork_works=$ac_cv_func_vfork
   { echo "$as_me:$LINENO: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
 echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
 fi
@@ -5211,7 +5579,14 @@
 fi
 
   if test $ac_cv_func_vfork_works = no; then
-    LIBOBJS="$LIBOBJS vfork.$ac_objext"
+    case $LIBOBJS in
+    "vfork.$ac_objext"   | \
+  *" vfork.$ac_objext"   | \
+    "vfork.$ac_objext "* | \
+  *" vfork.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS vfork.$ac_objext" ;;
+esac
+
   fi
   # We only need _doprnt if we might use it to implement v*printf.
   if test $ac_cv_func_vprintf != yes \
@@ -5232,7 +5607,6 @@
    { (exit 1); exit 1; }; }
 fi
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -5279,11 +5653,21 @@
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5296,7 +5680,8 @@
 
 eval "$as_ac_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
@@ -5306,7 +5691,14 @@
 _ACEOF
 
 else
-  LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
+  case $LIBOBJS in
+    "$ac_func.$ac_objext"   | \
+  *" $ac_func.$ac_objext"   | \
+    "$ac_func.$ac_objext "* | \
+  *" $ac_func.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;;
+esac
+
 fi
 done
 
@@ -5327,7 +5719,6 @@
    { (exit 1); exit 1; }; }
 fi
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -5374,11 +5765,21 @@
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5391,7 +5792,8 @@
 
 eval "$as_ac_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
@@ -5417,7 +5819,6 @@
    { (exit 1); exit 1; }; }
 fi
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -5434,11 +5835,21 @@
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5451,7 +5862,8 @@
 
 eval "libiberty_cv_var_$v=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
 
     if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then
@@ -5473,7 +5885,6 @@
   echo "$as_me:$LINENO: checking for external symbol _system_configuration" >&5
 echo $ECHO_N "checking for external symbol _system_configuration... $ECHO_C" >&6
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -5490,11 +5901,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5514,7 +5935,7 @@
 echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
 for ac_func in $checkfuncs
@@ -5531,7 +5952,6 @@
    { (exit 1); exit 1; }; }
 fi
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -5578,11 +5998,21 @@
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5595,7 +6025,8 @@
 
 eval "$as_ac_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
@@ -5613,7 +6044,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -5645,11 +6075,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5662,7 +6102,7 @@
 
 libiberty_cv_decl_needed_canonicalize_file_name=yes
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
 echo "$as_me:$LINENO: result: $libiberty_cv_decl_needed_canonicalize_file_name" >&5
@@ -5679,11 +6119,11 @@
 
 # Figure out which version of pexecute to use.
 case "${host}" in
-     *-*-mingw* | *-*-winnt*)	pexecute=pex-win32.o  ;;
-     *-*-msdosdjgpp*)		pexecute=pex-djgpp.o  ;;
-     *-*-msdos*)		pexecute=pex-msdos.o  ;;
-     *-*-os2-emx*)		pexecute=pex-os2.o    ;;
-     *)				pexecute=pex-unix.o   ;;
+     *-*-mingw* | *-*-winnt*)	pexecute="./pex-win32.o ./pexrd-generic.o"  ;;
+     *-*-msdosdjgpp*)		pexecute="./pex-djgpp.o ./pexrd-generic.o"  ;;
+     *-*-msdos*)		pexecute="./pex-msdos.o ./pexrd-generic.o"  ;;
+     *-*-os2-emx*)		pexecute="./pex-os2.o   ./pexrd-generic.o"  ;;
+     *)				pexecute="./pex-unix.o  ./pexrd-unix.o"     ;;
 esac
 
 
@@ -5704,7 +6144,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -5722,6 +6161,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -5763,7 +6203,6 @@
    { (exit 1); exit 1; }; }
 fi
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -5810,11 +6249,21 @@
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5827,7 +6276,8 @@
 
 eval "$as_ac_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
@@ -5848,7 +6298,6 @@
   ac_cv_func_mmap_fixed_mapped=no
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -5956,9 +6405,9 @@
   data2 = (char *) malloc (2 * pagesize);
   if (!data2)
     exit (1);
-  data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
+  data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1);
   if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
-                     MAP_PRIVATE | MAP_FIXED, fd, 0L))
+		     MAP_PRIVATE | MAP_FIXED, fd, 0L))
     exit (1);
   for (i = 0; i < pagesize; ++i)
     if (*(data + i) != *(data2 + i))
@@ -6001,7 +6450,7 @@
 ( exit $ac_status )
 ac_cv_func_mmap_fixed_mapped=no
 fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
@@ -6026,7 +6475,6 @@
   ac_cv_func_strncmp_works=no
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -6114,14 +6562,21 @@
 ( exit $ac_status )
 ac_cv_func_strncmp_works=no
 fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 rm -f core core.* *.core
 fi
 echo "$as_me:$LINENO: result: $ac_cv_func_strncmp_works" >&5
 echo "${ECHO_T}$ac_cv_func_strncmp_works" >&6
 if test $ac_cv_func_strncmp_works = no ; then
-  LIBOBJS="$LIBOBJS strncmp.$ac_objext"
+  case $LIBOBJS in
+    "strncmp.$ac_objext"   | \
+  *" strncmp.$ac_objext"   | \
+    "strncmp.$ac_objext "* | \
+  *" strncmp.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS strncmp.$ac_objext" ;;
+esac
+
 fi
 
 
@@ -6134,6 +6589,16 @@
 fi
 
 
+
+L=""
+for l in x $LIBOBJS; do
+  case $l in
+    x) ;;
+    *) L="$L ./$l" ;;
+  esac
+done
+LIBOBJS="$L"
+
 # We need multilib support, but only if configuring for the target.
                     ac_config_files="$ac_config_files Makefile testsuite/Makefile"
           ac_config_commands="$ac_config_commands default"
@@ -6165,13 +6630,13 @@
       # `set' does not quote correctly, so add quotes (double-quote
       # substitution turns \\\\ into \\, and sed turns \\ into \).
       sed -n \
-        "s/'/'\\\\''/g;
-    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
       ;;
     *)
       # `set' quotes correctly as required by POSIX, so do not add quotes.
       sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
       ;;
     esac;
 } |
@@ -6201,13 +6666,13 @@
 # trailing colons and then remove the whole line if VPATH becomes empty
 # (actually we leave an empty line to preserve line numbers).
 if test "x$srcdir" = x.; then
-  ac_vpsub='/^[ 	]*VPATH[ 	]*=/{
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
 s/:*\$(srcdir):*/:/;
 s/:*\${srcdir}:*/:/;
 s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ 	]*\):*/\1/;
+s/^\([^=]*=[	 ]*\):*/\1/;
 s/:*$//;
-s/^[^=]*=[ 	]*$//;
+s/^[^=]*=[	 ]*$//;
 }'
 fi
 
@@ -6218,7 +6683,7 @@
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_i=`echo "$ac_i" |
-         sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
   # 2. Add them.
   ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
   ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
@@ -6262,9 +6727,10 @@
 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
   set -o posix
 fi
+DUALCASE=1; export DUALCASE # for MKS sh
 
 # Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   as_unset=unset
 else
   as_unset=false
@@ -6283,7 +6749,7 @@
   LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
   LC_TELEPHONE LC_TIME
 do
-  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
     eval $as_var=C; export $as_var
   else
     $as_unset $as_var
@@ -6462,16 +6928,17 @@
 if mkdir -p . 2>/dev/null; then
   as_mkdir_p=:
 else
+  test -d ./-p && rmdir ./-p
   as_mkdir_p=false
 fi
 
 as_executable_p="test -f"
 
 # Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 
 # Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 # IFS
@@ -6498,7 +6965,7 @@
 cat >&5 <<_CSEOF
 
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.57.  Invocation command line was
+generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -6542,9 +7009,9 @@
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
   --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
+		   instantiate the configuration file FILE
   --header=FILE[:TEMPLATE]
-                   instantiate the configuration header FILE
+		   instantiate the configuration header FILE
 
 Configuration files:
 $config_files
@@ -6561,11 +7028,10 @@
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.57,
+configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
+Copyright (C) 2003 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 srcdir=$srcdir
@@ -6841,9 +7307,9 @@
       (echo ':t
   /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
       if test -z "$ac_sed_cmds"; then
-  	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
       else
-  	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
       fi
       ac_sed_frag=`expr $ac_sed_frag + 1`
       ac_beg=$ac_end
@@ -6861,21 +7327,21 @@
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
   case $ac_file in
   - | *:- | *:-:* ) # input from stdin
-        cat >$tmp/stdin
-        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
   *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
   * )   ac_file_in=$ac_file.in ;;
   esac
 
   # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
   ac_dir=`(dirname "$ac_file") 2>/dev/null ||
 $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_file" : 'X\(//\)[^/]' \| \
-         X"$ac_file" : 'X\(//\)$' \| \
-         X"$ac_file" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
 echo X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -6891,10 +7357,10 @@
       as_dirs="$as_dir $as_dirs"
       as_dir=`(dirname "$as_dir") 2>/dev/null ||
 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$as_dir" : 'X\(//\)[^/]' \| \
-         X"$as_dir" : 'X\(//\)$' \| \
-         X"$as_dir" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
 echo X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -6932,12 +7398,45 @@
     ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
     ac_top_srcdir=$ac_top_builddir$srcdir ;;
 esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
 
 
   case $INSTALL in
@@ -6959,7 +7458,7 @@
     configure_input="$ac_file.  "
   fi
   configure_input=$configure_input"Generated from `echo $ac_file_in |
-                                     sed 's,.*/,,'` by configure."
+				     sed 's,.*/,,'` by configure."
 
   # First look for the input files in the build tree, otherwise in the
   # src tree.
@@ -6968,24 +7467,24 @@
       case $f in
       -) echo $tmp/stdin ;;
       [\\/$]*)
-         # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
-         echo $f;;
+	 echo "$f";;
       *) # Relative
-         if test -f "$f"; then
-           # Build tree
-           echo $f
-         elif test -f "$srcdir/$f"; then
-           # Source tree
-           echo $srcdir/$f
-         else
-           # /dev/null tree
-           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
-         fi;;
+	 fi;;
       esac
     done` || { (exit 1); exit 1; }
 _ACEOF
@@ -7027,12 +7526,12 @@
 # NAME is the cpp macro being defined and VALUE is the value it is being given.
 #
 # ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
-ac_dB='[ 	].*$,\1#\2'
+ac_dA='s,^\([	 ]*\)#\([	 ]*define[	 ][	 ]*\)'
+ac_dB='[	 ].*$,\1#\2'
 ac_dC=' '
 ac_dD=',;t'
 # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
 ac_uB='$,\1#\2define\3'
 ac_uC=' '
 ac_uD=',;t'
@@ -7041,11 +7540,11 @@
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
   case $ac_file in
   - | *:- | *:-:* ) # input from stdin
-        cat >$tmp/stdin
-        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
   *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
   * )   ac_file_in=$ac_file.in ;;
   esac
 
@@ -7059,28 +7558,29 @@
       case $f in
       -) echo $tmp/stdin ;;
       [\\/$]*)
-         # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
-         echo $f;;
+	 # Do quote $f, to prevent DOS paths from being IFS'd.
+	 echo "$f";;
       *) # Relative
-         if test -f "$f"; then
-           # Build tree
-           echo $f
-         elif test -f "$srcdir/$f"; then
-           # Source tree
-           echo $srcdir/$f
-         else
-           # /dev/null tree
-           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
-         fi;;
+	 fi;;
       esac
     done` || { (exit 1); exit 1; }
   # Remove the trailing spaces.
-  sed 's/[ 	]*$//' $ac_file_inputs >$tmp/in
+  sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
 
 _ACEOF
 
@@ -7103,9 +7603,9 @@
 s,[\\$`],\\&,g
 t clear
 : clear
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*\)\(([^)]*)\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
 t end
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
 : end
 _ACEOF
 # If some macros were called several times there might be several times
@@ -7119,13 +7619,13 @@
 # example, in the case of _POSIX_SOURCE, which is predefined and required
 # on some systems where configure will not decide to define it.
 cat >>conftest.undefs <<\_ACEOF
-s,^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
 _ACEOF
 
 # Break up conftest.defines because some shells have a limit on the size
 # of here documents, and old seds have small limits too (100 cmds).
 echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if grep "^[ 	]*#[ 	]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
 echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
 echo '  :' >>$CONFIG_STATUS
 rm -f conftest.tail
@@ -7134,7 +7634,7 @@
   # Write a limited-size here document to $tmp/defines.sed.
   echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
   # Speed up: don't consider the non `#define' lines.
-  echo '/^[ 	]*#[ 	]*define/!b' >>$CONFIG_STATUS
+  echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
   # Work around the forget-to-reset-the-flag bug.
   echo 't clr' >>$CONFIG_STATUS
   echo ': clr' >>$CONFIG_STATUS
@@ -7161,7 +7661,7 @@
   # Write a limited-size here document to $tmp/undefs.sed.
   echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
   # Speed up: don't consider the non `#undef'
-  echo '/^[ 	]*#[ 	]*undef/!b' >>$CONFIG_STATUS
+  echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
   # Work around the forget-to-reset-the-flag bug.
   echo 't clr' >>$CONFIG_STATUS
   echo ': clr' >>$CONFIG_STATUS
@@ -7195,10 +7695,10 @@
     else
       ac_dir=`(dirname "$ac_file") 2>/dev/null ||
 $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_file" : 'X\(//\)[^/]' \| \
-         X"$ac_file" : 'X\(//\)$' \| \
-         X"$ac_file" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
 echo X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -7214,10 +7714,10 @@
       as_dirs="$as_dir $as_dirs"
       as_dir=`(dirname "$as_dir") 2>/dev/null ||
 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$as_dir" : 'X\(//\)[^/]' \| \
-         X"$as_dir" : 'X\(//\)$' \| \
-         X"$as_dir" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
 echo X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -7249,16 +7749,41 @@
   ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
   ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
 $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_dest" : 'X\(//\)[^/]' \| \
-         X"$ac_dest" : 'X\(//\)$' \| \
-         X"$ac_dest" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
+	 X"$ac_dest" : 'X\(//\)[^/]' \| \
+	 X"$ac_dest" : 'X\(//\)$' \| \
+	 X"$ac_dest" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
 echo X"$ac_dest" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
   	  /^X\(\/\/\)$/{ s//\1/; q; }
   	  /^X\(\/\).*/{ s//\1/; q; }
   	  s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
   ac_builddir=.
 
 if test "$ac_dir" != .; then
@@ -7284,12 +7809,45 @@
     ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
     ac_top_srcdir=$ac_top_builddir$srcdir ;;
 esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
 
 
   { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/configure.ac gcc-3.4.4-3/libiberty/configure.ac
--- gcc-3.4.4-3-orig/libiberty/configure.ac	2004-01-10 02:17:42.000000000 +0000
+++ gcc-3.4.4-3/libiberty/configure.ac	2006-05-13 17:35:38.000000000 +0100
@@ -1,7 +1,8 @@
 dnl Process this file with autoconf to produce a configure script
 
-AC_PREREQ(2.57)
-AC_INIT(xmalloc.c)
+AC_PREREQ(2.59)
+AC_INIT
+AC_CONFIG_SRCDIR([xmalloc.c])
 
 # This works around the fact that libtool configuration may change LD
 # for this particular configuration, but some shells, instead of
@@ -433,7 +434,7 @@
   AC_ISC_POSIX
   AC_REPLACE_FUNCS($funcs)
   libiberty_AC_FUNC_C_ALLOCA
-  AC_FUNC_VFORK
+  AC_FUNC_FORK
   if test $ac_cv_func_vfork_works = no; then
     AC_LIBOBJ([vfork])
   fi
@@ -449,9 +450,9 @@
   for v in $vars; do
     AC_MSG_CHECKING([for $v])
     AC_CACHE_VAL(libiberty_cv_var_$v,
-      [AC_TRY_LINK([int *p;], [extern int $v []; p = $v;],
-		   [eval "libiberty_cv_var_$v=yes"],
-		   [eval "libiberty_cv_var_$v=no"])])
+      [AC_LINK_IFELSE([AC_LANG_PROGRAM([[int *p;]],[[extern int $v []; p = $v;]])],
+		      [eval "libiberty_cv_var_$v=yes"],
+		      [eval "libiberty_cv_var_$v=no"])])
     if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then
       AC_MSG_RESULT(yes)
       n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
@@ -464,11 +465,11 @@
   # special check for _system_configuration because AIX <4.3.2 do not
   # contain the `physmem' member.
   AC_MSG_CHECKING([for external symbol _system_configuration])
-  AC_TRY_COMPILE([#include <sys/systemcfg.h>],
-                 [double x = _system_configuration.physmem;],
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/systemcfg.h>]],
+			[[double x = _system_configuration.physmem;]])],
     [AC_MSG_RESULT([yes])
     AC_DEFINE(HAVE__SYSTEM_CONFIGURATION, 1,
-              [Define if you have the _system_configuration variable.])],
+	      [Define if you have the _system_configuration variable.])],
     [AC_MSG_RESULT([no])])
 
   AC_CHECK_FUNCS($checkfuncs)
@@ -477,11 +478,11 @@
 
 # Figure out which version of pexecute to use.
 case "${host}" in
-     *-*-mingw* | *-*-winnt*)	pexecute=pex-win32.o  ;;
-     *-*-msdosdjgpp*)		pexecute=pex-djgpp.o  ;;
-     *-*-msdos*)		pexecute=pex-msdos.o  ;;
-     *-*-os2-emx*)		pexecute=pex-os2.o    ;;
-     *)				pexecute=pex-unix.o   ;;
+     *-*-mingw* | *-*-winnt*)	pexecute="./pex-win32.o ./pexrd-generic.o"  ;;
+     *-*-msdosdjgpp*)		pexecute="./pex-djgpp.o ./pexrd-generic.o"  ;;
+     *-*-msdos*)		pexecute="./pex-msdos.o ./pexrd-generic.o"  ;;
+     *-*-os2-emx*)		pexecute="./pex-os2.o   ./pexrd-generic.o"  ;;
+     *)				pexecute="./pex-unix.o  ./pexrd-unix.o"     ;;
 esac
 AC_SUBST(pexecute)
 
@@ -496,9 +497,20 @@
 fi
 AC_SUBST(INSTALL_DEST)
 
+m4_pattern_allow(LIBOBJS)
+L=""
+for l in x $LIBOBJS; do
+  case $l in
+    x) ;;
+    *) L="$L ./$l" ;;
+  esac
+done
+LIBOBJS="$L"
+
 # We need multilib support, but only if configuring for the target.
-AC_OUTPUT(Makefile testsuite/Makefile,
-[test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
+AC_CONFIG_FILES([Makefile testsuite/Makefile])
+AC_CONFIG_COMMANDS([default],
+  [[test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
 if test -n "$CONFIG_FILES"; then
   if test -n "${with_build_subdir}" || test -n "${with_target_subdir}"; then
     # FIXME: We shouldn't need to set ac_file
@@ -506,8 +518,8 @@
     LD="${ORIGINAL_LD_FOR_MULTILIBS}"
     . ${libiberty_topdir}/config-ml.in
   fi
-fi],
-srcdir=${srcdir}
+fi]],
+[[srcdir=${srcdir}
 host=${host}
 target=${target}
 with_target_subdir=${with_target_subdir}
@@ -517,4 +529,5 @@
 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
 ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
 libiberty_topdir=${libiberty_topdir}
-)
+]])
+AC_OUTPUT
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/dyn-string.c gcc-3.4.4-3/libiberty/dyn-string.c
--- gcc-3.4.4-3-orig/libiberty/dyn-string.c	2002-04-01 22:55:12.000000000 +0100
+++ gcc-3.4.4-3/libiberty/dyn-string.c	2005-06-03 21:03:40.000000000 +0100
@@ -1,5 +1,5 @@
 /* An abstract string datatype.
-   Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
    Contributed by Mark Mitchell (mark@markmitchell.com).
 
 This file is part of GNU CC.
@@ -45,15 +45,6 @@
 #include "libiberty.h"
 #include "dyn-string.h"
 
-/* If this file is being compiled for inclusion in the C++ runtime
-   library, as part of the demangler implementation, we don't want to
-   abort if an allocation fails.  Instead, percolate an error code up
-   through the call chain.  */
-
-#if defined(IN_LIBGCC2) || defined(IN_GLIBCPP_V3)
-#define RETURN_ON_ALLOCATION_FAILURE
-#endif
-
 /* Performs in-place initialization of a dyn_string struct.  This
    function can be used with a dyn_string struct on the stack or
    embedded in another object.  The contents of of the string itself
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/getpwd.c gcc-3.4.4-3/libiberty/getpwd.c
--- gcc-3.4.4-3-orig/libiberty/getpwd.c	2001-10-07 22:53:32.000000000 +0100
+++ gcc-3.4.4-3/libiberty/getpwd.c	2006-05-13 17:35:38.000000000 +0100
@@ -35,6 +35,9 @@
 #if HAVE_SYS_STAT_H
 #include <sys/stat.h>
 #endif
+#if HAVE_LIMITS_H
+#include <limits.h>
+#endif
 
 /* Prototype these in case the system headers don't provide them. */
 extern char *getpwd ();
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/maint-tool gcc-3.4.4-3/libiberty/maint-tool
--- gcc-3.4.4-3-orig/libiberty/maint-tool	2003-04-15 20:21:38.000000000 +0100
+++ gcc-3.4.4-3/libiberty/maint-tool	2005-06-03 21:03:40.000000000 +0100
@@ -213,6 +213,12 @@
 
 sub deps {
 
+    $crule  = "\tif [ x\"\$(PICFLAG)\" != x ]; then \\\n";
+    $crule .= "\t  \$(COMPILE.c) \$(PICFLAG) \$< -o pic/\$@; \\\n";
+    $crule .= "\telse true; fi\n";
+    $crule .= "\t\$(COMPILE.c) \$< \$(OUTPUT_OPTION)\n";
+    $crule .= "\n";
+
     $incdir = shift @ARGV;
 
     opendir(INC, $incdir);
@@ -260,10 +266,10 @@
 	    @deps = sort { &locals_first($a,$b) } keys %scanned;
 	    $obj = $f;
 	    $obj =~ s/\.c$/.o/;
-	    $obj = "$obj:";
+	    $obj = "./$obj:";
 	    if ($#deps >= 0) {
-		print OUT $obj;
-		$len = length($obj);
+		print OUT "$obj \$(srcdir)/$f";
+		$len = length("$obj $f");
 		for $dt (@deps) {
 		    $d = $mine{$dt};
 		    if ($len + length($d) > 70) {
@@ -275,7 +281,12 @@
 		    }
 		}
 		print OUT "\n";
+	    } else {
+		print OUT "$obj \$(srcdir)/$f\n";
 	    }
+	    $c = $crule;
+	    $c =~ s@\$\<@\$\(srcdir\)\/$f@g;
+	    print OUT $c;
 	}
     }
     closedir(S);
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/pex-common.h gcc-3.4.4-3/libiberty/pex-common.h
--- gcc-3.4.4-3-orig/libiberty/pex-common.h	2003-01-24 20:02:12.000000000 +0000
+++ gcc-3.4.4-3/libiberty/pex-common.h	2006-05-13 17:35:38.000000000 +0100
@@ -1,6 +1,6 @@
 /* Utilities to execute a program in a subprocess (possibly linked by pipes
    with other subprocesses), and wait for it.  Shared logic.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
+   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004
    Free Software Foundation, Inc.
 
 This file is part of the libiberty library.
@@ -33,6 +33,9 @@
 /* stdout file number.  */
 #define STDOUT_FILE_NO 1
 
+/* stderr file number.  */
+#define STDERR_FILE_NO 2
+
 /* value of `pipe': port index for reading.  */
 #define READ_PORT 0
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/pex-unix.c gcc-3.4.4-3/libiberty/pex-unix.c
--- gcc-3.4.4-3-orig/libiberty/pex-unix.c	2003-01-24 20:02:12.000000000 +0000
+++ gcc-3.4.4-3/libiberty/pex-unix.c	2006-05-13 17:35:38.000000000 +0100
@@ -1,7 +1,7 @@
 /* Utilities to execute a program in a subprocess (possibly linked by pipes
    with other subprocesses), and wait for it.  Generic Unix version
    (also used for UWIN and VMS).
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
+   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004
    Free Software Foundation, Inc.
 
 This file is part of the libiberty library.
@@ -44,28 +44,66 @@
 #define waitpid(pid, status, flags) wait(status)
 #endif
 
-extern int execv ();
-extern int execvp ();
+#ifdef vfork /* Autoconf may define this to fork for us. */
+# define VFORK_STRING "fork"
+#else
+# define VFORK_STRING "vfork"
+#endif
+#ifdef HAVE_VFORK_H
+#include <vfork.h>
+#endif
+#ifdef VMS
+#define vfork() (decc$$alloc_vfork_blocks() >= 0 ? \
+               lib$get_current_invo_context(decc$$get_vfork_jmpbuf()) : -1)
+#endif /* VMS */
+
+/* Execute a program, possibly setting up pipes to programs executed
+   via other calls to this function.
+
+   This version of the function uses vfork.  In general vfork is
+   similar to setjmp/longmp, in that any variable which is modified by
+   the child process has an indeterminate value in the parent process.
+   We follow a safe approach here by not modifying any variables at
+   all in the child process (with the possible exception of variables
+   modified by xstrerror if exec fails, but this is unlikely to be
+   detectable).
+
+   We work a little bit harder to avoid gcc warnings.  gcc will warn
+   about any automatic variable which is live at the time of the
+   vfork, which is non-volatile, and which is either set more than
+   once or is an argument to the function.  This warning isn't quite
+   right, since what we really care about is whether the variable is
+   live at the time of the vfork and set afterward by the child
+   process, but gcc only checks whether the variable is set more than
+   once.  To avoid this warning, we ensure that any variable which is
+   live at the time of the vfork (i.e., used after the vfork) is set
+   exactly once and is not an argument, or is marked volatile.  */
 
 int
-pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags)
+pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg,
+	  flagsarg)
      const char *program;
      char * const *argv;
      const char *this_pname;
      const char *temp_base ATTRIBUTE_UNUSED;
      char **errmsg_fmt, **errmsg_arg;
-     int flags;
+     int flagsarg;
 {
-  int (*func)() = (flags & PEXECUTE_SEARCH ? execvp : execv);
   int pid;
   int pdes[2];
+  int out;
   int input_desc, output_desc;
-  int retries, sleep_interval;
+  int flags;
+  /* We declare these to be volatile to avoid warnings from gcc about
+     them being clobbered by vfork.  */
+  volatile int retries, sleep_interval;
   /* Pipe waiting from last process, to be used as input for the next one.
      Value is STDIN_FILE_NO if no pipe is waiting
      (i.e. the next command is the first of a group).  */
   static int last_pipe_input;
 
+  flags = flagsarg;
+
   /* If this is the first process, initialize.  */
   if (flags & PEXECUTE_FIRST)
     last_pipe_input = STDIN_FILE_NO;
@@ -82,22 +120,24 @@
 	  *errmsg_arg = NULL;
 	  return -1;
 	}
-      output_desc = pdes[WRITE_PORT];
+      out = pdes[WRITE_PORT];
       last_pipe_input = pdes[READ_PORT];
     }
   else
     {
       /* Last process.  */
-      output_desc = STDOUT_FILE_NO;
+      out = STDOUT_FILE_NO;
       last_pipe_input = STDIN_FILE_NO;
     }
 
+  output_desc = out;
+
   /* Fork a subprocess; wait and retry if it fails.  */
   sleep_interval = 1;
   pid = -1;
   for (retries = 0; retries < 4; retries++)
     {
-      pid = fork ();
+      pid = vfork ();
       if (pid >= 0)
 	break;
       sleep (sleep_interval);
@@ -131,12 +171,21 @@
 	close (last_pipe_input);
 
       /* Exec the program.  */
-      (*func) (program, argv);
+      if (flags & PEXECUTE_SEARCH)
+	execvp (program, argv);
+      else
+	execv (program, argv);
 
-      fprintf (stderr, "%s: ", this_pname);
-      fprintf (stderr, install_error_msg, program);
-      fprintf (stderr, ": %s\n", xstrerror (errno));
-      exit (-1);
+      /* We don't want to call fprintf after vfork.  */
+#define writeerr(s) write (STDERR_FILE_NO, s, strlen (s))
+      writeerr (this_pname);
+      writeerr (": ");
+      writeerr ("installation problem, cannot exec '");
+      writeerr (program);
+      writeerr ("': ");
+      writeerr (xstrerror (errno));
+      writeerr ("\n");
+      _exit (-1);
       /* NOTREACHED */
       return 0;
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/pexecute.txh gcc-3.4.4-3/libiberty/pexecute.txh
--- gcc-3.4.4-3-orig/libiberty/pexecute.txh	2003-01-24 20:02:12.000000000 +0000
+++ gcc-3.4.4-3/libiberty/pexecute.txh	2006-05-13 17:35:38.000000000 +0100
@@ -1,4 +1,4 @@
-@deftypefn Extension int pexecute (const char *@var{program}, char * const *@var{argv}, const char *@var{this_pname}, const char *@var{temp_base}, char **@var{errmsg_fmt}, char **@var{errmsg_arg}, int flags)
+@deftypefn Extension int pexecute (const char *@var{program}, char * const *@var{argv}, const char *@var{this_pname}, const char *@var{temp_base}, char **@var{errmsg_fmt}, char **@var{errmsg_arg}, int @var{flags})
 
 Executes a program.
 
@@ -61,3 +61,39 @@
 
 pfinish is necessary for systems like MPW where a script is generated
 that runs the requested programs.
+
+@end undocumented
+
+@deftypefn Extension FILE* pex_read (const char *@var{program}, char * const *@var{argv}, const char *@var{this_pname}, const char *@var{temp_base}, char **@var{errmsg_fmt}, char **@var{errmsg_arg}, int @var{flags}, int *@var{pidptr})
+
+Executes a program and returns a stdio file for the program's standard
+output.  This is a safe version of the usual Unix function
+@code{popen}.
+
+The first seven parameters are the same as for @code{pexecute}.  The
+last parameter returns a process identifier to be passed to
+@code{pex_read_close}.
+
+The only flags used for the @var{flags} parameter is
+@code{PEXECUTE_SEARCH}.
+
+Upon failure, @var{errmsg_fmt} and @var{errmsg_arg} are set to the
+text of the error message with an optional argument (if not needed,
+@var{errmsg_arg} is set to @code{NULL}), and @code{NULL} is returned.
+@code{errno} is available to the caller to use.
+
+@end deftypefn
+
+@deftypefn Extension int pex_read_close (int @var{pid}, FILE *@var{file}, int *@var{status}, int @var{flags})
+
+Close a file opened by @code{pex_read}, and wait for the subprocess to
+complete.  The @var{pid} and @var{file} arguments should have been
+obtained from a call to @code{pex_read}.
+
+The result is the pid of the child reaped, or -1 for failure
+(@code{errno} says why).
+
+On a successful return, *@var{status} is set to the exit status of the
+subprocess.
+
+@end deftypefn
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/pexrd-generic.c gcc-3.4.4-3/libiberty/pexrd-generic.c
--- gcc-3.4.4-3-orig/libiberty/pexrd-generic.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-3.4.4-3/libiberty/pexrd-generic.c	2005-06-03 21:03:44.000000000 +0100
@@ -0,0 +1,72 @@
+/* Execute a program and read stdout.  Generic version.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of the libiberty library.
+Libiberty is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+Libiberty 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
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with libiberty; see the file COPYING.LIB.  If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include "pex-common.h"
+#include "pex-read.h"
+
+#include <errno.h>
+#ifdef NEED_DECLARATION_ERRNO
+extern int errno;
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+FILE *
+pex_read (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags,
+	  pidptr)
+     const char *program;
+     char * const *argv;
+     const char *this_pname ATTRIBUTE_UNUSED;
+     const char *temp_base ATTRIBUTE_UNUSED;
+     char **errmsg_fmt;
+     char **errmsg_arg;
+     int flags ATTRIBUTE_UNUSED;
+     int *pidptr ATTRIBUTE_UNUSED;
+{
+  char *cmd;
+  int i;
+  FILE *ret;
+
+  cmd = xstrdup (program);
+  for (i = 0; argv[i] != NULL; ++i)
+    cmd = reconcat (cmd, cmd, " ", argv[i], NULL);
+
+  ret = popen (cmd, "r");
+  if (ret == NULL)
+    {
+      *errmsg_fmt = "popen";
+      *errmsg_arg = NULL;
+    }
+
+  free (cmd);
+
+  return ret;
+}
+
+int
+pex_read_close (pid, file, status, flags)
+     int pid ATTRIBUTE_UNUSED;
+     FILE *file;
+     int *status;
+     int flags ATTRIBUTE_UNUSED;
+{
+  *status = pclose (file);
+  return 0;
+}
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/pexrd-unix.c gcc-3.4.4-3/libiberty/pexrd-unix.c
--- gcc-3.4.4-3-orig/libiberty/pexrd-unix.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-3.4.4-3/libiberty/pexrd-unix.c	2005-06-03 21:03:44.000000000 +0100
@@ -0,0 +1,164 @@
+/* Execute a program and read stdout.  Generic Unix version.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of the libiberty library.
+Libiberty is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+Libiberty 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
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with libiberty; see the file COPYING.LIB.  If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include "pex-common.h"
+
+#include <stdio.h>
+#include <errno.h>
+#ifdef NEED_DECLARATION_ERRNO
+extern int errno;
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_WAIT_H
+#include <sys/wait.h>
+#endif
+
+#ifndef HAVE_WAITPID
+#define waitpid(pid, status, flags) wait(status)
+#endif
+
+#ifdef vfork /* Autoconf may define this to fork for us. */
+# define VFORK_STRING "fork"
+#else
+# define VFORK_STRING "vfork"
+#endif
+#ifdef HAVE_VFORK_H
+#include <vfork.h>
+#endif
+#ifdef VMS
+#define vfork() (decc$$alloc_vfork_blocks() >= 0 ? \
+               lib$get_current_invo_context(decc$$get_vfork_jmpbuf()) : -1)
+#endif /* VMS */
+
+/* A safe version of popen.  See pex-unix.c for notes on vfork.  */
+
+FILE *
+pex_read (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg,
+	  flagsarg, pidptr)
+     const char *program;
+     char * const *argv;
+     const char *this_pname;
+     const char *temp_base ATTRIBUTE_UNUSED;
+     char **errmsg_fmt;
+     char **errmsg_arg;
+     int flagsarg;
+     int *pidptr;
+{
+  int flags;
+  int pid;
+  int pdes[2];
+  int in;
+  int out;
+  FILE *ret;
+  /* We declare these to be volatile to avoid warnings from gcc about
+     them being clobbered by vfork.  */
+  volatile int retries;
+  volatile int sleep_interval;
+
+  flags = flagsarg;
+
+  if (pipe (pdes) < 0)
+    {
+      *errmsg_fmt = "pipe";
+      *errmsg_arg = NULL;
+      return NULL;
+    }
+
+  in = pdes[READ_PORT];
+  out = pdes[WRITE_PORT];
+
+  sleep_interval = 1;
+  pid = -1;
+  for (retries = 0; retries < 4; retries++)
+    {
+      pid = vfork ();
+      if (pid >= 0)
+	break;
+      sleep (sleep_interval);
+      sleep_interval *= 2;
+    }
+
+  switch (pid)
+    {
+    case -1:
+      *errmsg_fmt = "fork";
+      *errmsg_arg = NULL;
+      return NULL;
+
+    case 0:
+      if (out != STDOUT_FILE_NO)
+	{
+	  close (STDOUT_FILE_NO);
+	  dup (out);
+	  close (out);
+	}
+      close (in);
+
+      if (flags & PEXECUTE_SEARCH)
+	execvp (program, argv);
+      else
+	execv (program, argv);
+
+      /* We don't want to call fprintf after vfork.  */
+#define writeerr(s) write (STDERR_FILE_NO, s, strlen (s))
+      writeerr (this_pname);
+      writeerr (": ");
+      writeerr ("installation problem, cannot exec '");
+      writeerr (program);
+      writeerr ("': ");
+      writeerr (xstrerror (errno));
+      writeerr ("\n");
+      _exit (-1);
+      /* NOTREACHED */
+      return NULL;
+
+    default:
+      close (out);
+      ret = fdopen (in, "r");
+      if (ret == NULL)
+	{
+	  *errmsg_fmt = "fdopen";
+	  *errmsg_arg = NULL;
+	  return NULL;
+	}
+      *pidptr = pid;
+      return ret;
+    }
+  /* NOTREACHED */
+}
+
+int
+pex_read_close (pid, file, status, flags)
+     int pid;
+     FILE *file;
+     int *status;
+     int flags ATTRIBUTE_UNUSED;
+{
+  /* ??? Canonicalize STATUS value?  */
+  fclose (file);
+  return waitpid (pid, status, 0);
+}
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/regex.c gcc-3.4.4-3/libiberty/regex.c
--- gcc-3.4.4-3-orig/libiberty/regex.c	2003-04-15 15:24:26.000000000 +0100
+++ gcc-3.4.4-3/libiberty/regex.c	2005-06-03 21:03:40.000000000 +0100
@@ -36,6 +36,8 @@
 # include <config.h>
 #endif
 
+#include <ansidecl.h>
+
 #ifndef PARAMS
 # if defined __GNUC__ || (defined __STDC__ && __STDC__)
 #  define PARAMS(args) args
@@ -8040,7 +8042,7 @@
 
       /* Map uppercase characters to corresponding lowercase ones.  */
       for (i = 0; i < CHAR_SET_SIZE; i++)
-        preg->translate[i] = ISUPPER (i) ? TOLOWER (i) : i;
+        preg->translate[i] = ISUPPER (i) ? TOLOWER (i) : (int) i;
     }
   else
     preg->translate = NULL;
@@ -8175,7 +8177,7 @@
 size_t
 regerror (errcode, preg, errbuf, errbuf_size)
     int errcode;
-    const regex_t *preg;
+    const regex_t *preg ATTRIBUTE_UNUSED;
     char *errbuf;
     size_t errbuf_size;
 {
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/strerror.c gcc-3.4.4-3/libiberty/strerror.c
--- gcc-3.4.4-3-orig/libiberty/strerror.c	2003-10-02 20:06:30.000000000 +0100
+++ gcc-3.4.4-3/libiberty/strerror.c	2006-05-13 17:35:38.000000000 +0100
@@ -2,9 +2,6 @@
    Written by Fred Fish.  fnf@cygnus.com
    This file is in the public domain.  --Per Bothner.  */
 
-#include "ansidecl.h"
-#include "libiberty.h"
-
 #include "config.h"
 
 #ifdef HAVE_SYS_ERRLIST
@@ -17,6 +14,9 @@
 #define sys_errlist sys_errlist__
 #endif
 
+#include "ansidecl.h"
+#include "libiberty.h"
+
 #include <stdio.h>
 #include <errno.h>
 
@@ -469,8 +469,10 @@
 
 #else
 
+#ifndef __MINGW32__
 extern int sys_nerr;
 extern char *sys_errlist[];
+#endif
 
 #endif
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libiberty/testsuite/test-demangle.c gcc-3.4.4-3/libiberty/testsuite/test-demangle.c
--- gcc-3.4.4-3-orig/libiberty/testsuite/test-demangle.c	2004-01-02 20:33:56.000000000 +0000
+++ gcc-3.4.4-3/libiberty/testsuite/test-demangle.c	2006-05-13 17:35:38.000000000 +0100
@@ -26,6 +26,12 @@
 #include <stdio.h>
 #include "libiberty.h"
 #include "demangle.h"
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#if HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
 
 struct line
 {
@@ -119,7 +125,7 @@
      int argc;
      char **argv;
 {
-  enum demangling_styles style;
+  enum demangling_styles style = auto_demangling;
   int no_params;
   int is_v3_ctor;
   int is_v3_dtor;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/Makefile.am gcc-3.4.4-3/libjava/Makefile.am
--- gcc-3.4.4-3-orig/libjava/Makefile.am	2004-01-24 20:47:28.000000000 +0000
+++ gcc-3.4.4-3/libjava/Makefile.am	2005-06-03 21:03:40.000000000 +0100
@@ -381,7 +381,7 @@
 	-@rm -f libgcj-@gcc_version@.jar
 	@echo Compiling Java sourcefiles...
 	@: $(call write_entries_to_file,$?,libgcj.sourcelist)
-	$(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(here):$(srcdir) -d $(here) @libgcj.sourcelist
+	$(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(here)'$(CLASSPATH_SEP)'$(srcdir) -d $(here) @libgcj.sourcelist
 ## Note that we explicitly want to include directory information.
 	find java gnu javax org -type d -o -type f -name '*.class' | \
 	  sed -e '/\/\./d' -e '/\/xlib/d' | \
@@ -399,7 +399,7 @@
 # Compile each classfile individually.
 
 .java.class:
-	$(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(here):$(srcdir) -d $(here) $<
+	$(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(here)'$(CLASSPATH_SEP)'$(srcdir) -d $(here) $<
 
 libgcj-@gcc_version@.jar: $(all_java_class_files)
 	-@rm -f libgcj-@gcc_version@.jar
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/Makefile.in gcc-3.4.4-3/libjava/Makefile.in
--- gcc-3.4.4-3-orig/libjava/Makefile.in	2005-05-19 10:58:00.000000000 +0100
+++ gcc-3.4.4-3/libjava/Makefile.in	2005-06-03 21:03:42.000000000 +0100
@@ -70,6 +70,7 @@
 CAIRO_LIBS = @CAIRO_LIBS@
 CC = @CC@
 CHECKREFSPEC = @CHECKREFSPEC@
+CLASSPATH_SEP = @CLASSPATH_SEP@
 COMPPATH = @COMPPATH@
 CXX = @CXX@
 CXXCPP = @CXXCPP@
@@ -5193,7 +5194,7 @@
 @ONESTEP_TRUE@	-@rm -f libgcj-@gcc_version@.jar
 @ONESTEP_TRUE@	@echo Compiling Java sourcefiles...
 @ONESTEP_TRUE@	@: $(call write_entries_to_file,$?,libgcj.sourcelist)
-@ONESTEP_TRUE@	$(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(here):$(srcdir) -d $(here) @libgcj.sourcelist
+@ONESTEP_TRUE@	$(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(here)'$(CLASSPATH_SEP)'$(srcdir) -d $(here) @libgcj.sourcelist
 @ONESTEP_TRUE@	find java gnu javax org -type d -o -type f -name '*.class' | \
 @ONESTEP_TRUE@	  sed -e '/\/\./d' -e '/\/xlib/d' | \
 @ONESTEP_TRUE@	  $(ZIP) cfM0E@ $@
@@ -5208,7 +5209,7 @@
 # Compile each classfile individually.
 
 @ONESTEP_FALSE@.java.class:
-@ONESTEP_FALSE@	$(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(here):$(srcdir) -d $(here) $<
+@ONESTEP_FALSE@	$(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(here)'$(CLASSPATH_SEP)'$(srcdir) -d $(here) $<
 
 @ONESTEP_FALSE@libgcj-@gcc_version@.jar: $(all_java_class_files)
 @ONESTEP_FALSE@	-@rm -f libgcj-@gcc_version@.jar
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/configure gcc-3.4.4-3/libjava/configure
--- gcc-3.4.4-3-orig/libjava/configure	2005-05-19 10:58:00.000000000 +0100
+++ gcc-3.4.4-3/libjava/configure	2005-06-03 21:03:42.000000000 +0100
@@ -1640,7 +1640,7 @@
   if { (eval echo configure:1641: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
     for file in conftest.*; do
       case $file in
-      *.$ac_ext | *.c | *.o | *.obj) ;;
+      *.c | *.o | *.obj) ;;
       *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
       esac
     done
@@ -3255,7 +3255,7 @@
 
 case "${host}" in
     *mingw*)
-      SYSTEMSPEC="-lgdi32 -lwsock32 -lws2_32"
+      SYSTEMSPEC="-lgdi32 -lws2_32"
       if test "${with_win32_nlsapi}" = "unicows"; then
         SYSTEMSPEC="-lunicows $SYSTEMSPEC"
       fi
@@ -7651,6 +7651,11 @@
 
 fi
 
+case "${build}" in
+    *mingw*) CLASSPATH_SEP=';' ;;
+    *) CLASSPATH_SEP=':' ;;
+esac
+
 # Which gcj do we use?
 which_gcj=default
 built_gcc_dir="`cd ${builddotdot}/../../gcc && ${PWDCMD-pwd}`"
@@ -7741,7 +7746,7 @@
 # Extract the first word of "${ac_tool_prefix}gcj", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcj; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:7745: checking for $ac_word" >&5
+echo "configure:7750: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_GCJ'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7773,7 +7778,7 @@
   # Extract the first word of "gcj", so it can be a program name with args.
 set dummy gcj; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:7777: checking for $ac_word" >&5
+echo "configure:7782: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_GCJ'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7835,13 +7840,13 @@
 CPPFLAGS=$GCJ_SAVE_CPPFLAGS
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:7839: checking size of void *" >&5
+echo "configure:7844: checking size of void *" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
   cat > conftest.$ac_ext <<EOF
-#line 7845 "configure"
+#line 7850 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
 #include <sys/types.h>
@@ -7851,7 +7856,7 @@
 switch (0) case 0: case (sizeof (void *) == $ac_size):;
 ; return 0; }
 EOF
-if { (eval echo configure:7855: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7860: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sizeof_void_p=$ac_size
 else
@@ -7896,6 +7901,7 @@
 
 
 
+
 if test "$CANADIAN" = yes; then
   CANADIAN_TRUE=
   CANADIAN_FALSE='#'
@@ -7964,17 +7970,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:7968: checking for $ac_hdr" >&5
+echo "configure:7974: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7973 "configure"
+#line 7979 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7978: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7984: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8004,17 +8010,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8008: checking for $ac_hdr" >&5
+echo "configure:8014: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8013 "configure"
+#line 8019 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8018: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8044,17 +8050,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8048: checking for $ac_hdr" >&5
+echo "configure:8054: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8053 "configure"
+#line 8059 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8058: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8064: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8090,12 +8096,12 @@
 done
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:8094: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:8100: checking for sys/wait.h that is POSIX.1 compatible" >&5
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8099 "configure"
+#line 8105 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -8111,7 +8117,7 @@
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:8115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8121: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -8133,12 +8139,12 @@
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:8137: checking for ANSI C header files" >&5
+echo "configure:8143: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8142 "configure"
+#line 8148 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -8146,7 +8152,7 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8150: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8156: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8163,7 +8169,7 @@
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 8167 "configure"
+#line 8173 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -8181,7 +8187,7 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 8185 "configure"
+#line 8191 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -8202,7 +8208,7 @@
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 8206 "configure"
+#line 8212 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -8213,7 +8219,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:8217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -8237,12 +8243,12 @@
 fi
 
 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:8241: checking for ssize_t" >&5
+echo "configure:8247: checking for ssize_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8246 "configure"
+#line 8252 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -8271,9 +8277,9 @@
 
 
 echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6
-echo "configure:8275: checking for in_addr_t" >&5
+echo "configure:8281: checking for in_addr_t" >&5
 cat > conftest.$ac_ext <<EOF
-#line 8277 "configure"
+#line 8283 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -8287,7 +8293,7 @@
 in_addr_t foo;
 ; return 0; }
 EOF
-if { (eval echo configure:8291: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define HAVE_IN_ADDR_T 1
@@ -8303,16 +8309,16 @@
 rm -f conftest*
 
 echo $ac_n "checking whether struct ip_mreq is in netinet/in.h""... $ac_c" 1>&6
-echo "configure:8307: checking whether struct ip_mreq is in netinet/in.h" >&5
+echo "configure:8313: checking whether struct ip_mreq is in netinet/in.h" >&5
 cat > conftest.$ac_ext <<EOF
-#line 8309 "configure"
+#line 8315 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 int main() {
 struct ip_mreq mreq;
 ; return 0; }
 EOF
-if { (eval echo configure:8316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define HAVE_STRUCT_IP_MREQ 1
@@ -8328,16 +8334,16 @@
 rm -f conftest*
 
 echo $ac_n "checking whether struct ipv6_mreq is in netinet/in.h""... $ac_c" 1>&6
-echo "configure:8332: checking whether struct ipv6_mreq is in netinet/in.h" >&5
+echo "configure:8338: checking whether struct ipv6_mreq is in netinet/in.h" >&5
 cat > conftest.$ac_ext <<EOF
-#line 8334 "configure"
+#line 8340 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 int main() {
 struct ipv6_mreq mreq6;
 ; return 0; }
 EOF
-if { (eval echo configure:8341: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define HAVE_STRUCT_IPV6_MREQ 1
@@ -8353,16 +8359,16 @@
 rm -f conftest*
 
 echo $ac_n "checking whether struct sockaddr_in6 is in netinet/in.h""... $ac_c" 1>&6
-echo "configure:8357: checking whether struct sockaddr_in6 is in netinet/in.h" >&5
+echo "configure:8363: checking whether struct sockaddr_in6 is in netinet/in.h" >&5
 cat > conftest.$ac_ext <<EOF
-#line 8359 "configure"
+#line 8365 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 int main() {
 struct sockaddr_in6 addr6;
 ; return 0; }
 EOF
-if { (eval echo configure:8366: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define HAVE_INET6 1
@@ -8378,9 +8384,9 @@
 rm -f conftest*
 
 echo $ac_n "checking for socklen_t in sys/socket.h""... $ac_c" 1>&6
-echo "configure:8382: checking for socklen_t in sys/socket.h" >&5
+echo "configure:8388: checking for socklen_t in sys/socket.h" >&5
 cat > conftest.$ac_ext <<EOF
-#line 8384 "configure"
+#line 8390 "configure"
 #include "confdefs.h"
 #define _POSIX_PII_SOCKET
 #include <sys/types.h>
@@ -8389,7 +8395,7 @@
 socklen_t x = 5;
 ; return 0; }
 EOF
-if { (eval echo configure:8393: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define HAVE_SOCKLEN_T 1
@@ -8405,16 +8411,16 @@
 rm -f conftest*
 
 echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6
-echo "configure:8409: checking for tm_gmtoff in struct tm" >&5
+echo "configure:8415: checking for tm_gmtoff in struct tm" >&5
 cat > conftest.$ac_ext <<EOF
-#line 8411 "configure"
+#line 8417 "configure"
 #include "confdefs.h"
 #include <time.h>
 int main() {
 struct tm tim; tim.tm_gmtoff = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:8418: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8424: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define STRUCT_TM_HAS_GMTOFF 1
@@ -8427,16 +8433,16 @@
   rm -rf conftest*
   echo "$ac_t""no" 1>&6
    echo $ac_n "checking for global timezone variable""... $ac_c" 1>&6
-echo "configure:8431: checking for global timezone variable" >&5
+echo "configure:8437: checking for global timezone variable" >&5
                cat > conftest.$ac_ext <<EOF
-#line 8433 "configure"
+#line 8439 "configure"
 #include "confdefs.h"
 #include <time.h>
 int main() {
 void i(){long z2 = 2*timezone;}
 ; return 0; }
 EOF
-if { (eval echo configure:8440: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8446: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define HAVE_TIMEZONE 1
@@ -8449,16 +8455,16 @@
   rm -rf conftest*
   echo "$ac_t""no" 1>&6
        echo $ac_n "checking for global _timezone variable""... $ac_c" 1>&6
-echo "configure:8453: checking for global _timezone variable" >&5
+echo "configure:8459: checking for global _timezone variable" >&5
               cat > conftest.$ac_ext <<EOF
-#line 8455 "configure"
+#line 8461 "configure"
 #include "confdefs.h"
 #include <time.h>
 int main() {
 long z2 = _timezone;
 ; return 0; }
 EOF
-if { (eval echo configure:8462: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8468: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define HAVE_UNDERSCORE_TIMEZONE 1
@@ -8480,19 +8486,19 @@
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:8484: checking for working alloca.h" >&5
+echo "configure:8490: checking for working alloca.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8489 "configure"
+#line 8495 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:8496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -8513,12 +8519,12 @@
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:8517: checking for alloca" >&5
+echo "configure:8523: checking for alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8522 "configure"
+#line 8528 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -8546,7 +8552,7 @@
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:8550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -8578,12 +8584,12 @@
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:8582: checking whether alloca needs Cray hooks" >&5
+echo "configure:8588: checking whether alloca needs Cray hooks" >&5
 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8587 "configure"
+#line 8593 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -8608,12 +8614,12 @@
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8612: checking for $ac_func" >&5
+echo "configure:8618: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8617 "configure"
+#line 8623 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8636,7 +8642,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:8640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8646: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8663,7 +8669,7 @@
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:8667: checking stack direction for C alloca" >&5
+echo "configure:8673: checking stack direction for C alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8671,7 +8677,7 @@
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 8675 "configure"
+#line 8681 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -8690,7 +8696,7 @@
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:8694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_stack_direction=1
 else
@@ -8715,17 +8721,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8719: checking for $ac_hdr" >&5
+echo "configure:8725: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8724 "configure"
+#line 8730 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8729: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8735: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8754,12 +8760,12 @@
 for ac_func in getpagesize
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8758: checking for $ac_func" >&5
+echo "configure:8764: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8763 "configure"
+#line 8769 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8782,7 +8788,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:8786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8792: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8807,7 +8813,7 @@
 done
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:8811: checking for working mmap" >&5
+echo "configure:8817: checking for working mmap" >&5
 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8815,7 +8821,7 @@
   ac_cv_func_mmap_fixed_mapped=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 8819 "configure"
+#line 8825 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test.
@@ -8955,7 +8961,7 @@
 }
 
 EOF
-if { (eval echo configure:8959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_mmap_fixed_mapped=yes
 else
@@ -8983,7 +8989,7 @@
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8987: checking for $ac_word" >&5
+echo "configure:8993: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9070,7 +9076,7 @@
 # Define here any compiler flags that you need in order to make backtrace() work.
 BACKTRACESPEC=
 case "${host}" in
- x86_64*-*-linux*)
+ x86_64*-*-linux*|i?86-*)
     BACKTRACESPEC=-fno-omit-frame-pointer
     ;;
 esac
@@ -9352,6 +9358,7 @@
 s%@CHECKREFSPEC@%$CHECKREFSPEC%g
 s%@EXCEPTIONSPEC@%$EXCEPTIONSPEC%g
 s%@IEEESPEC@%$IEEESPEC%g
+s%@CLASSPATH_SEP@%$CLASSPATH_SEP%g
 s%@CANADIAN_TRUE@%$CANADIAN_TRUE%g
 s%@CANADIAN_FALSE@%$CANADIAN_FALSE%g
 s%@NULL_TARGET_TRUE@%$NULL_TARGET_TRUE%g
@@ -9775,7 +9782,7 @@
       fi
     fi
 
-    cd "$ac_popdir"
+    cd $ac_popdir
   done
 fi
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/configure.host gcc-3.4.4-3/libjava/configure.host
--- gcc-3.4.4-3-orig/libjava/configure.host	2004-01-23 17:39:12.000000000 +0000
+++ gcc-3.4.4-3/libjava/configure.host	2005-06-03 21:03:42.000000000 +0100
@@ -90,7 +90,7 @@
 	;;
   i686-*|i586-*|i486-*|i386-*)
 	sysdeps_dir=i386
-	libgcj_flags="${libgcj_flags} -ffloat-store"
+	libgcj_flags="${libgcj_flags} -ffloat-store -fno-omit-frame-pointer"
 	libgcj_interpreter=yes
 	libgcj_cxxflags=
 	libgcj_cflags=
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/configure.in gcc-3.4.4-3/libjava/configure.in
--- gcc-3.4.4-3-orig/libjava/configure.in	2004-01-23 17:39:12.000000000 +0000
+++ gcc-3.4.4-3/libjava/configure.in	2005-06-03 21:03:42.000000000 +0100
@@ -333,7 +333,7 @@
 
 case "${host}" in
     *mingw*)
-      SYSTEMSPEC="-lgdi32 -lwsock32 -lws2_32"
+      SYSTEMSPEC="-lgdi32 -lws2_32"
       if test "${with_win32_nlsapi}" = "unicows"; then
         SYSTEMSPEC="-lunicows $SYSTEMSPEC"
       fi
@@ -898,6 +898,11 @@
 changequote([,])
 fi
 
+case "${build}" in
+    *mingw*) CLASSPATH_SEP=';' ;;
+    *) CLASSPATH_SEP=':' ;;
+esac
+
 # Which gcj do we use?
 which_gcj=default
 built_gcc_dir="`cd ${builddotdot}/../../gcc && ${PWDCMD-pwd}`"
@@ -1010,6 +1015,7 @@
 AC_SUBST(CHECKREFSPEC)
 AC_SUBST(EXCEPTIONSPEC)
 AC_SUBST(IEEESPEC)
+AC_SUBST(CLASSPATH_SEP)
 
 AM_CONDITIONAL(CANADIAN, test "$CANADIAN" = yes)
 AM_CONDITIONAL(NULL_TARGET, test "$NULL_TARGET" = yes)
@@ -1183,7 +1189,7 @@
 # Define here any compiler flags that you need in order to make backtrace() work.
 BACKTRACESPEC=
 case "${host}" in
- x86_64*-*-linux*)
+ x86_64*-*-linux*|i?86-*)
     BACKTRACESPEC=-fno-omit-frame-pointer
     ;;
 esac
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/include/win32-threads.h gcc-3.4.4-3/libjava/include/win32-threads.h
--- gcc-3.4.4-3-orig/libjava/include/win32-threads.h	2003-10-21 05:46:20.000000000 +0100
+++ gcc-3.4.4-3/libjava/include/win32-threads.h	2006-05-13 17:35:38.000000000 +0100
@@ -13,6 +13,7 @@
 #ifndef __JV_WIN32_THREADS__
 #define __JV_WIN32_THREADS__
 
+#define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 
 //
@@ -75,6 +76,7 @@
 // Condition variables.
 //
 
+#define _Jv_HaveCondDestroy
 int _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, jlong millis, jint nanos);
 void _Jv_CondInit (_Jv_ConditionVariable_t *cv);
 void _Jv_CondDestroy (_Jv_ConditionVariable_t *cv);
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/include/win32.h gcc-3.4.4-3/libjava/include/win32.h
--- gcc-3.4.4-3-orig/libjava/include/win32.h	2003-12-16 22:54:22.000000000 +0000
+++ gcc-3.4.4-3/libjava/include/win32.h	2005-06-03 21:03:42.000000000 +0100
@@ -22,6 +22,8 @@
 
 // Includes
 #define WIN32_LEAN_AND_MEAN
+// Force Winsock 2 interface.
+#include <winsock2.h>
 #include <windows.h>
 #undef WIN32_LEAN_AND_MEAN
 #undef STRICT
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/java/io/BufferedReader.java gcc-3.4.4-3/libjava/java/io/BufferedReader.java
--- gcc-3.4.4-3-orig/libjava/java/io/BufferedReader.java	2003-12-28 11:54:18.000000000 +0000
+++ gcc-3.4.4-3/libjava/java/io/BufferedReader.java	2006-05-13 17:35:40.000000000 +0100
@@ -89,6 +89,11 @@
   static final int DEFAULT_BUFFER_SIZE = 8192;
 
   /**
+   * The line buffer for <code>readLine</code>.
+   */
+  private StringBuffer sbuf = null;
+
+  /**
     * Create a new <code>BufferedReader</code> that will read from the 
     * specified subordinate stream with a default buffer size of 8192 chars.
     *
@@ -439,7 +444,7 @@
     int i = lineEnd(limit);
     if (i < limit)
       {
-	String str = new String(buffer, pos, i - pos);
+	String str = String.valueOf(buffer, pos, i - pos);
 	pos = i + 1;
 	// If the last char in the buffer is a '\r', we must remember
 	// to check if the next char to be read after the buffer is refilled
@@ -450,7 +455,10 @@
 	    pos++;
 	return str;
       }
-    StringBuffer sbuf = new StringBuffer(200);
+    if (sbuf == null)
+      sbuf = new StringBuffer(200);
+    else
+      sbuf.setLength(0);
     sbuf.append(buffer, pos, i - pos);
     pos = i;
     // We only want to return null when no characters were read before
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/java/io/InputStreamReader.java gcc-3.4.4-3/libjava/java/io/InputStreamReader.java
--- gcc-3.4.4-3-orig/libjava/java/io/InputStreamReader.java	2003-05-09 08:10:58.000000000 +0100
+++ gcc-3.4.4-3/libjava/java/io/InputStreamReader.java	2005-06-03 21:03:42.000000000 +0100
@@ -231,10 +231,8 @@
 	int wavail = wcount - wpos;
 	if (wavail <= 0)
 	  {
-	    // Nothing waiting, so refill our buffer.
-	    if (! refill ())
-	      return -1;
-	    wavail = wcount - wpos;
+	    // Nothing waiting, so refill their buffer.
+	    return refill(buf, offset, length);
 	  }
 
 	if (length > wavail)
@@ -262,24 +260,24 @@
 	int wavail = wcount - wpos;
 	if (wavail <= 0)
 	  {
-	    // Nothing waiting, so refill our buffer.
-	    if (! refill ())
+	    // Nothing waiting, so refill our internal buffer.
+	    wpos = wcount = 0;
+	    if (work == null)
+	       work = new char[100];
+	    int count = refill(work, 0, work.length);
+	    if (count == -1)
 	      return -1;
+	    wcount += count;
 	  }
 
 	return work[wpos++];
       }
   }
 
-  // Read more bytes and convert them into the WORK buffer.
-  // Return false on EOF.
-  private boolean refill () throws IOException
+  // Read more bytes and convert them into the specified buffer.
+  // Returns the number of converted characters or -1 on EOF.
+  private int refill(char[] buf, int offset, int length) throws IOException
   {
-    wcount = wpos = 0;
-
-    if (work == null)
-      work = new char[100];
-
     for (;;)
       {
 	// We have knowledge of the internals of BufferedInputStream
@@ -290,17 +288,13 @@
 	boolean r = in.pos < in.count || in.refill ();
 	in.reset ();
 	if (! r)
-	  return false;
+	  return -1;
 	converter.setInput(in.buf, in.pos, in.count);
-	int count = converter.read (work, wpos, work.length - wpos);
+	int count = converter.read(buf, offset, length);
 	in.skip(converter.inpos - in.pos);
 	if (count > 0)
-	  {
-	    wcount += count;
-	    return true;
-	  }
+	  return count;
       }
   }
-
 } // class InputStreamReader
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/java/lang/natRuntime.cc gcc-3.4.4-3/libjava/java/lang/natRuntime.cc
--- gcc-3.4.4-3-orig/libjava/java/lang/natRuntime.cc	2003-12-16 21:48:24.000000000 +0000
+++ gcc-3.4.4-3/libjava/java/lang/natRuntime.cc	2006-05-13 17:35:40.000000000 +0100
@@ -318,6 +318,8 @@
   // Do nothing.
 }
 
+#if ! defined (__CYGWIN__)
+
 #if ! defined (DEFAULT_FILE_ENCODING) && defined (HAVE_ICONV) \
     && defined (HAVE_NL_LANGINFO)
 
@@ -335,6 +337,8 @@
 
 #endif
 
+#endif // __CYGWIN__ 
+
 #ifndef DEFAULT_FILE_ENCODING
 #define DEFAULT_FILE_ENCODING "8859_1"
 #endif
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/java/lang/natThread.cc gcc-3.4.4-3/libjava/java/lang/natThread.cc
--- gcc-3.4.4-3-orig/libjava/java/lang/natThread.cc	2003-10-21 05:46:20.000000000 +0100
+++ gcc-3.4.4-3/libjava/java/lang/natThread.cc	2006-05-13 17:35:40.000000000 +0100
@@ -81,6 +81,12 @@
 {
   natThread *nt = (natThread *) ptr;
   _Jv_ThreadDestroyData (nt->thread);
+#ifdef _Jv_HaveCondDestroy
+  _Jv_CondDestroy (&nt->join_cond);
+#endif
+#ifdef _Jv_HaveMutexDestroy
+  _Jv_MutexDestroy (&nt->join_mutex);
+#endif
 }
 
 jint
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/jni.cc gcc-3.4.4-3/libjava/jni.cc
--- gcc-3.4.4-3-orig/libjava/jni.cc	2003-11-18 17:56:34.000000000 +0000
+++ gcc-3.4.4-3/libjava/jni.cc	2006-05-13 17:35:40.000000000 +0100
@@ -221,7 +221,7 @@
 
 
 static jobject
-(JNICALL _Jv_JNI_NewGlobalRef) (JNIEnv *, jobject obj)
+JNICALL _Jv_JNI_NewGlobalRef (JNIEnv *, jobject obj)
 {
   // This seems weird but I think it is correct.
   obj = unwrap (obj);
@@ -230,7 +230,7 @@
 }
 
 static void
-(JNICALL _Jv_JNI_DeleteGlobalRef) (JNIEnv *, jobject obj)
+JNICALL _Jv_JNI_DeleteGlobalRef (JNIEnv *, jobject obj)
 {
   // This seems weird but I think it is correct.
   obj = unwrap (obj);
@@ -238,7 +238,7 @@
 }
 
 static void
-(JNICALL _Jv_JNI_DeleteLocalRef) (JNIEnv *env, jobject obj)
+JNICALL _Jv_JNI_DeleteLocalRef (JNIEnv *env, jobject obj)
 {
   _Jv_JNI_LocalFrame *frame;
 
@@ -265,7 +265,7 @@
 }
 
 static jint
-(JNICALL _Jv_JNI_EnsureLocalCapacity) (JNIEnv *env, jint size)
+JNICALL _Jv_JNI_EnsureLocalCapacity (JNIEnv *env, jint size)
 {
   // It is easier to just always allocate a new frame of the requested
   // size.  This isn't the most efficient thing, but for now we don't
@@ -293,7 +293,7 @@
 }
 
 static jint
-(JNICALL _Jv_JNI_PushLocalFrame) (JNIEnv *env, jint size)
+JNICALL _Jv_JNI_PushLocalFrame (JNIEnv *env, jint size)
 {
   jint r = _Jv_JNI_EnsureLocalCapacity (env, size);
   if (r < 0)
@@ -306,7 +306,7 @@
 }
 
 static jobject
-(JNICALL _Jv_JNI_NewLocalRef) (JNIEnv *env, jobject obj)
+JNICALL _Jv_JNI_NewLocalRef (JNIEnv *env, jobject obj)
 {
   // This seems weird but I think it is correct.
   obj = unwrap (obj);
@@ -347,7 +347,7 @@
 }
 
 static jobject
-(JNICALL _Jv_JNI_PopLocalFrame) (JNIEnv *env, jobject result, int stop)
+JNICALL _Jv_JNI_PopLocalFrame (JNIEnv *env, jobject result, int stop)
 {
   _Jv_JNI_LocalFrame *rf = env->locals;
 
@@ -382,7 +382,7 @@
 }
 
 static jobject
-(JNICALL _Jv_JNI_PopLocalFrame) (JNIEnv *env, jobject result)
+JNICALL _Jv_JNI_PopLocalFrame (JNIEnv *env, jobject result)
 {
   return _Jv_JNI_PopLocalFrame (env, result, MARK_USER);
 }
@@ -454,14 +454,14 @@
 
 
 static jint
-(JNICALL _Jv_JNI_GetVersion) (JNIEnv *)
+JNICALL _Jv_JNI_GetVersion (JNIEnv *)
 {
   return JNI_VERSION_1_4;
 }
 
 static jclass
-(JNICALL _Jv_JNI_DefineClass) (JNIEnv *env, const char *name, jobject loader,
-		               const jbyte *buf, jsize bufLen)
+JNICALL _Jv_JNI_DefineClass (JNIEnv *env, const char *name, jobject loader,
+		             const jbyte *buf, jsize bufLen)
 {
   try
     {
@@ -487,7 +487,7 @@
 }
 
 static jclass
-(JNICALL _Jv_JNI_FindClass) (JNIEnv *env, const char *name)
+JNICALL _Jv_JNI_FindClass (JNIEnv *env, const char *name)
 {
   // FIXME: assume that NAME isn't too long.
   int len = strlen (name);
@@ -523,19 +523,19 @@
 }
 
 static jclass
-(JNICALL _Jv_JNI_GetSuperclass) (JNIEnv *env, jclass clazz)
+JNICALL _Jv_JNI_GetSuperclass (JNIEnv *env, jclass clazz)
 {
   return (jclass) wrap_value (env, unwrap (clazz)->getSuperclass ());
 }
 
 static jboolean
-(JNICALL _Jv_JNI_IsAssignableFrom) (JNIEnv *, jclass clazz1, jclass clazz2)
+JNICALL _Jv_JNI_IsAssignableFrom (JNIEnv *, jclass clazz1, jclass clazz2)
 {
   return unwrap (clazz1)->isAssignableFrom (unwrap (clazz2));
 }
 
 static jint
-(JNICALL _Jv_JNI_Throw) (JNIEnv *env, jthrowable obj)
+JNICALL _Jv_JNI_Throw (JNIEnv *env, jthrowable obj)
 {
   // We check in case the user did some funky cast.
   obj = unwrap (obj);
@@ -545,7 +545,7 @@
 }
 
 static jint
-(JNICALL _Jv_JNI_ThrowNew) (JNIEnv *env, jclass clazz, const char *message)
+JNICALL _Jv_JNI_ThrowNew (JNIEnv *env, jclass clazz, const char *message)
 {
   using namespace java::lang::reflect;
 
@@ -582,32 +582,32 @@
 }
 
 static jthrowable
-(JNICALL _Jv_JNI_ExceptionOccurred) (JNIEnv *env)
+JNICALL _Jv_JNI_ExceptionOccurred (JNIEnv *env)
 {
   return (jthrowable) wrap_value (env, env->ex);
 }
 
 static void
-(JNICALL _Jv_JNI_ExceptionDescribe) (JNIEnv *env)
+JNICALL _Jv_JNI_ExceptionDescribe (JNIEnv *env)
 {
   if (env->ex != NULL)
     env->ex->printStackTrace();
 }
 
 static void
-(JNICALL _Jv_JNI_ExceptionClear) (JNIEnv *env)
+JNICALL _Jv_JNI_ExceptionClear (JNIEnv *env)
 {
   env->ex = NULL;
 }
 
 static jboolean
-(JNICALL _Jv_JNI_ExceptionCheck) (JNIEnv *env)
+JNICALL _Jv_JNI_ExceptionCheck (JNIEnv *env)
 {
   return env->ex != NULL;
 }
 
 static void
-(JNICALL _Jv_JNI_FatalError) (JNIEnv *, const char *message)
+JNICALL _Jv_JNI_FatalError (JNIEnv *, const char *message)
 {
   JvFail (message);
 }
@@ -615,13 +615,13 @@
 
 
 static jboolean
-(JNICALL _Jv_JNI_IsSameObject) (JNIEnv *, jobject obj1, jobject obj2)
+JNICALL _Jv_JNI_IsSameObject (JNIEnv *, jobject obj1, jobject obj2)
 {
   return unwrap (obj1) == unwrap (obj2);
 }
 
 static jobject
-(JNICALL _Jv_JNI_AllocObject) (JNIEnv *env, jclass clazz)
+JNICALL _Jv_JNI_AllocObject (JNIEnv *env, jclass clazz)
 {
   jobject obj = NULL;
   using namespace java::lang::reflect;
@@ -644,7 +644,7 @@
 }
 
 static jclass
-(JNICALL _Jv_JNI_GetObjectClass) (JNIEnv *env, jobject obj)
+JNICALL _Jv_JNI_GetObjectClass (JNIEnv *env, jobject obj)
 {
   obj = unwrap (obj);
   JvAssert (obj);
@@ -652,7 +652,7 @@
 }
 
 static jboolean
-(JNICALL _Jv_JNI_IsInstanceOf) (JNIEnv *, jobject obj, jclass clazz)
+JNICALL _Jv_JNI_IsInstanceOf (JNIEnv *, jobject obj, jclass clazz)
 {
   return unwrap (clazz)->isInstance(unwrap (obj));
 }
@@ -665,8 +665,8 @@
 
 template<jboolean is_static>
 static jmethodID
-(JNICALL _Jv_JNI_GetAnyMethodID) (JNIEnv *env, jclass clazz,
-			          const char *name, const char *sig)
+JNICALL _Jv_JNI_GetAnyMethodID (JNIEnv *env, jclass clazz,
+			        const char *name, const char *sig)
 {
   try
     {
@@ -761,8 +761,8 @@
 // constructor.
 template<typename T, invocation_type style>
 static T
-(JNICALL _Jv_JNI_CallAnyMethodV) (JNIEnv *env, jobject obj, jclass klass,
-			          jmethodID id, va_list vargs)
+JNICALL _Jv_JNI_CallAnyMethodV (JNIEnv *env, jobject obj, jclass klass,
+			        jmethodID id, va_list vargs)
 {
   obj = unwrap (obj);
   klass = unwrap (klass);
@@ -803,8 +803,8 @@
 
 template<typename T, invocation_type style>
 static T
-(JNICALL _Jv_JNI_CallAnyMethod) (JNIEnv *env, jobject obj, jclass klass,
-		                 jmethodID method, ...)
+JNICALL _Jv_JNI_CallAnyMethod (JNIEnv *env, jobject obj, jclass klass,
+		               jmethodID method, ...)
 {
   va_list args;
   T result;
@@ -818,8 +818,8 @@
 
 template<typename T, invocation_type style>
 static T
-(JNICALL _Jv_JNI_CallAnyMethodA) (JNIEnv *env, jobject obj, jclass klass,
-			          jmethodID id, jvalue *args)
+JNICALL _Jv_JNI_CallAnyMethodA (JNIEnv *env, jobject obj, jclass klass,
+			        jmethodID id, jvalue *args)
 {
   obj = unwrap (obj);
   klass = unwrap (klass);
@@ -867,8 +867,8 @@
 
 template<invocation_type style>
 static void
-(JNICALL _Jv_JNI_CallAnyVoidMethodV) (JNIEnv *env, jobject obj, jclass klass,
-			              jmethodID id, va_list vargs)
+JNICALL _Jv_JNI_CallAnyVoidMethodV (JNIEnv *env, jobject obj, jclass klass,
+			            jmethodID id, va_list vargs)
 {
   obj = unwrap (obj);
   klass = unwrap (klass);
@@ -903,8 +903,8 @@
 
 template<invocation_type style>
 static void
-(JNICALL _Jv_JNI_CallAnyVoidMethod) (JNIEnv *env, jobject obj, jclass klass,
-			             jmethodID method, ...)
+JNICALL _Jv_JNI_CallAnyVoidMethod (JNIEnv *env, jobject obj, jclass klass,
+			           jmethodID method, ...)
 {
   va_list args;
 
@@ -915,8 +915,8 @@
 
 template<invocation_type style>
 static void
-(JNICALL _Jv_JNI_CallAnyVoidMethodA) (JNIEnv *env, jobject obj, jclass klass,
-			              jmethodID id, jvalue *args)
+JNICALL _Jv_JNI_CallAnyVoidMethodA (JNIEnv *env, jobject obj, jclass klass,
+			            jmethodID id, jvalue *args)
 {
   jclass decl_class = klass ? klass : obj->getClass ();
   JvAssert (decl_class != NULL);
@@ -954,8 +954,8 @@
 // the CallMethod family.
 template<typename T>
 static T
-(JNICALL _Jv_JNI_CallMethodV) (JNIEnv *env, jobject obj, 
-                               jmethodID id, va_list args)
+JNICALL _Jv_JNI_CallMethodV (JNIEnv *env, jobject obj, 
+                             jmethodID id, va_list args)
 {
   return _Jv_JNI_CallAnyMethodV<T, normal> (env, obj, NULL, id, args);
 }
@@ -964,7 +964,7 @@
 // the CallMethod family.
 template<typename T>
 static T
-(JNICALL _Jv_JNI_CallMethod) (JNIEnv *env, jobject obj, jmethodID id, ...)
+JNICALL _Jv_JNI_CallMethod (JNIEnv *env, jobject obj, jmethodID id, ...)
 {
   va_list args;
   T result;
@@ -980,21 +980,21 @@
 // the CallMethod family.
 template<typename T>
 static T
-(JNICALL _Jv_JNI_CallMethodA) (JNIEnv *env, jobject obj, 
-                               jmethodID id, jvalue *args)
+JNICALL _Jv_JNI_CallMethodA (JNIEnv *env, jobject obj, 
+                             jmethodID id, jvalue *args)
 {
   return _Jv_JNI_CallAnyMethodA<T, normal> (env, obj, NULL, id, args);
 }
 
 static void
-(JNICALL _Jv_JNI_CallVoidMethodV) (JNIEnv *env, jobject obj, 
-                                   jmethodID id, va_list args)
+JNICALL _Jv_JNI_CallVoidMethodV (JNIEnv *env, jobject obj, 
+                                 jmethodID id, va_list args)
 {
   _Jv_JNI_CallAnyVoidMethodV<normal> (env, obj, NULL, id, args);
 }
 
 static void
-(JNICALL _Jv_JNI_CallVoidMethod) (JNIEnv *env, jobject obj, jmethodID id, ...)
+JNICALL _Jv_JNI_CallVoidMethod (JNIEnv *env, jobject obj, jmethodID id, ...)
 {
   va_list args;
 
@@ -1004,8 +1004,8 @@
 }
 
 static void
-(JNICALL _Jv_JNI_CallVoidMethodA) (JNIEnv *env, jobject obj, 
-                                   jmethodID id, jvalue *args)
+JNICALL _Jv_JNI_CallVoidMethodA (JNIEnv *env, jobject obj, 
+                                 jmethodID id, jvalue *args)
 {
   _Jv_JNI_CallAnyVoidMethodA<normal> (env, obj, NULL, id, args);
 }
@@ -1014,8 +1014,8 @@
 // the CallStaticMethod family.
 template<typename T>
 static T
-(JNICALL _Jv_JNI_CallStaticMethodV) (JNIEnv *env, jclass klass,
-			             jmethodID id, va_list args)
+JNICALL _Jv_JNI_CallStaticMethodV (JNIEnv *env, jclass klass,
+			           jmethodID id, va_list args)
 {
   JvAssert (((id->accflags) & java::lang::reflect::Modifier::STATIC));
   JvAssert (java::lang::Class::class$.isInstance (unwrap (klass)));
@@ -1027,8 +1027,8 @@
 // the CallStaticMethod family.
 template<typename T>
 static T
-(JNICALL _Jv_JNI_CallStaticMethod) (JNIEnv *env, jclass klass, 
-                                    jmethodID id, ...)
+JNICALL _Jv_JNI_CallStaticMethod (JNIEnv *env, jclass klass, 
+                                  jmethodID id, ...)
 {
   va_list args;
   T result;
@@ -1048,8 +1048,8 @@
 // the CallStaticMethod family.
 template<typename T>
 static T
-(JNICALL _Jv_JNI_CallStaticMethodA) (JNIEnv *env, jclass klass, jmethodID id,
-			             jvalue *args)
+JNICALL _Jv_JNI_CallStaticMethodA (JNIEnv *env, jclass klass, jmethodID id,
+			           jvalue *args)
 {
   JvAssert (((id->accflags) & java::lang::reflect::Modifier::STATIC));
   JvAssert (java::lang::Class::class$.isInstance (unwrap (klass)));
@@ -1058,15 +1058,15 @@
 }
 
 static void
-(JNICALL _Jv_JNI_CallStaticVoidMethodV) (JNIEnv *env, jclass klass, 
-                                         jmethodID id, va_list args)
+JNICALL _Jv_JNI_CallStaticVoidMethodV (JNIEnv *env, jclass klass, 
+                                       jmethodID id, va_list args)
 {
   _Jv_JNI_CallAnyVoidMethodV<static_type> (env, NULL, klass, id, args);
 }
 
 static void
-(JNICALL _Jv_JNI_CallStaticVoidMethod) (JNIEnv *env, jclass klass, 
-                                        jmethodID id, ...)
+JNICALL _Jv_JNI_CallStaticVoidMethod (JNIEnv *env, jclass klass, 
+                                      jmethodID id, ...)
 {
   va_list args;
 
@@ -1076,15 +1076,15 @@
 }
 
 static void
-(JNICALL _Jv_JNI_CallStaticVoidMethodA) (JNIEnv *env, jclass klass, 
-                                         jmethodID id, jvalue *args)
+JNICALL _Jv_JNI_CallStaticVoidMethodA (JNIEnv *env, jclass klass, 
+                                       jmethodID id, jvalue *args)
 {
   _Jv_JNI_CallAnyVoidMethodA<static_type> (env, NULL, klass, id, args);
 }
 
 static jobject
-(JNICALL _Jv_JNI_NewObjectV) (JNIEnv *env, jclass klass,
-		              jmethodID id, va_list args)
+JNICALL _Jv_JNI_NewObjectV (JNIEnv *env, jclass klass,
+		            jmethodID id, va_list args)
 {
   JvAssert (klass && ! klass->isArray ());
   JvAssert (! strcmp (id->name->data, "<init>")
@@ -1098,7 +1098,7 @@
 }
 
 static jobject
-(JNICALL _Jv_JNI_NewObject) (JNIEnv *env, jclass klass, jmethodID id, ...)
+JNICALL _Jv_JNI_NewObject (JNIEnv *env, jclass klass, jmethodID id, ...)
 {
   JvAssert (klass && ! klass->isArray ());
   JvAssert (! strcmp (id->name->data, "<init>")
@@ -1119,8 +1119,8 @@
 }
 
 static jobject
-(JNICALL _Jv_JNI_NewObjectA) (JNIEnv *env, jclass klass, jmethodID id,
-		              jvalue *args)
+JNICALL _Jv_JNI_NewObjectA (JNIEnv *env, jclass klass, jmethodID id,
+		            jvalue *args)
 {
   JvAssert (klass && ! klass->isArray ());
   JvAssert (! strcmp (id->name->data, "<init>")
@@ -1137,7 +1137,7 @@
 
 template<typename T>
 static T
-(JNICALL _Jv_JNI_GetField) (JNIEnv *env, jobject obj, jfieldID field)
+JNICALL _Jv_JNI_GetField (JNIEnv *env, jobject obj, jfieldID field)
 {
   obj = unwrap (obj);
   JvAssert (obj);
@@ -1147,7 +1147,7 @@
 
 template<typename T>
 static void
-(JNICALL _Jv_JNI_SetField) (JNIEnv *, jobject obj, jfieldID field, T value)
+JNICALL _Jv_JNI_SetField (JNIEnv *, jobject obj, jfieldID field, T value)
 {
   obj = unwrap (obj);
   value = unwrap (value);
@@ -1159,8 +1159,8 @@
 
 template<jboolean is_static>
 static jfieldID
-(JNICALL _Jv_JNI_GetAnyFieldID) (JNIEnv *env, jclass clazz,
-		                 const char *name, const char *sig)
+JNICALL _Jv_JNI_GetAnyFieldID (JNIEnv *env, jclass clazz,
+		               const char *name, const char *sig)
 {
   try
     {
@@ -1220,7 +1220,7 @@
 
 template<typename T>
 static T
-(JNICALL _Jv_JNI_GetStaticField) (JNIEnv *env, jclass, jfieldID field)
+JNICALL _Jv_JNI_GetStaticField (JNIEnv *env, jclass, jfieldID field)
 {
   T *ptr = (T *) field->u.addr;
   return wrap_value (env, *ptr);
@@ -1228,7 +1228,7 @@
 
 template<typename T>
 static void
-(JNICALL _Jv_JNI_SetStaticField) (JNIEnv *, jclass, jfieldID field, T value)
+JNICALL _Jv_JNI_SetStaticField (JNIEnv *, jclass, jfieldID field, T value)
 {
   value = unwrap (value);
   T *ptr = (T *) field->u.addr;
@@ -1236,7 +1236,7 @@
 }
 
 static jstring
-(JNICALL _Jv_JNI_NewString) (JNIEnv *env, const jchar *unichars, jsize len)
+JNICALL _Jv_JNI_NewString (JNIEnv *env, const jchar *unichars, jsize len)
 {
   try
     {
@@ -1251,13 +1251,13 @@
 }
 
 static jsize
-(JNICALL _Jv_JNI_GetStringLength) (JNIEnv *, jstring string)
+JNICALL _Jv_JNI_GetStringLength (JNIEnv *, jstring string)
 {
   return unwrap (string)->length();
 }
 
 static const jchar *
-(JNICALL _Jv_JNI_GetStringChars) (JNIEnv *, jstring string, jboolean *isCopy)
+JNICALL _Jv_JNI_GetStringChars (JNIEnv *, jstring string, jboolean *isCopy)
 {
   string = unwrap (string);
   jchar *result = _Jv_GetStringChars (string);
@@ -1268,13 +1268,13 @@
 }
 
 static void
-(JNICALL _Jv_JNI_ReleaseStringChars) (JNIEnv *, jstring string, const jchar *)
+JNICALL _Jv_JNI_ReleaseStringChars (JNIEnv *, jstring string, const jchar *)
 {
   unmark_for_gc (unwrap (string), global_ref_table);
 }
 
 static jstring
-(JNICALL _Jv_JNI_NewStringUTF) (JNIEnv *env, const char *bytes)
+JNICALL _Jv_JNI_NewStringUTF (JNIEnv *env, const char *bytes)
 {
   try
     {
@@ -1289,14 +1289,14 @@
 }
 
 static jsize
-(JNICALL _Jv_JNI_GetStringUTFLength) (JNIEnv *, jstring string)
+JNICALL _Jv_JNI_GetStringUTFLength (JNIEnv *, jstring string)
 {
   return JvGetStringUTFLength (unwrap (string));
 }
 
 static const char *
-(JNICALL _Jv_JNI_GetStringUTFChars) (JNIEnv *env, jstring string, 
-                                     jboolean *isCopy)
+JNICALL _Jv_JNI_GetStringUTFChars (JNIEnv *env, jstring string, 
+                                   jboolean *isCopy)
 {
   try
     {
@@ -1321,14 +1321,14 @@
 }
 
 static void
-(JNICALL _Jv_JNI_ReleaseStringUTFChars) (JNIEnv *, jstring, const char *utf)
+JNICALL _Jv_JNI_ReleaseStringUTFChars (JNIEnv *, jstring, const char *utf)
 {
   _Jv_Free ((void *) utf);
 }
 
 static void
-(JNICALL _Jv_JNI_GetStringRegion) (JNIEnv *env, jstring string, jsize start, 
-                                   jsize len, jchar *buf)
+JNICALL _Jv_JNI_GetStringRegion (JNIEnv *env, jstring string, jsize start, 
+                                 jsize len, jchar *buf)
 {
   string = unwrap (string);
   jchar *result = _Jv_GetStringChars (string);
@@ -1349,8 +1349,8 @@
 }
 
 static void
-(JNICALL _Jv_JNI_GetStringUTFRegion) (JNIEnv *env, jstring str, jsize start,
-			              jsize len, char *buf)
+JNICALL _Jv_JNI_GetStringUTFRegion (JNIEnv *env, jstring str, jsize start,
+			            jsize len, char *buf)
 {
   str = unwrap (str);
     
@@ -1371,7 +1371,7 @@
 }
 
 static const jchar *
-(JNICALL _Jv_JNI_GetStringCritical) (JNIEnv *, jstring str, jboolean *isCopy)
+JNICALL _Jv_JNI_GetStringCritical (JNIEnv *, jstring str, jboolean *isCopy)
 {
   jchar *result = _Jv_GetStringChars (unwrap (str));
   if (isCopy)
@@ -1380,20 +1380,20 @@
 }
 
 static void
-(JNICALL _Jv_JNI_ReleaseStringCritical) (JNIEnv *, jstring, const jchar *)
+JNICALL _Jv_JNI_ReleaseStringCritical (JNIEnv *, jstring, const jchar *)
 {
   // Nothing.
 }
 
 static jsize
-(JNICALL _Jv_JNI_GetArrayLength) (JNIEnv *, jarray array)
+JNICALL _Jv_JNI_GetArrayLength (JNIEnv *, jarray array)
 {
   return unwrap (array)->length;
 }
 
 static jarray
-(JNICALL _Jv_JNI_NewObjectArray) (JNIEnv *env, jsize length, 
-                                  jclass elementClass, jobject init)
+JNICALL _Jv_JNI_NewObjectArray (JNIEnv *env, jsize length, 
+                                jclass elementClass, jobject init)
 {
   try
     {
@@ -1412,8 +1412,8 @@
 }
 
 static jobject
-(JNICALL _Jv_JNI_GetObjectArrayElement) (JNIEnv *env, jobjectArray array, 
-                                         jsize index)
+JNICALL _Jv_JNI_GetObjectArrayElement (JNIEnv *env, jobjectArray array, 
+                                       jsize index)
 {
   if ((unsigned) index >= (unsigned) array->length)
     _Jv_ThrowBadArrayIndex (index);
@@ -1422,8 +1422,8 @@
 }
 
 static void
-(JNICALL _Jv_JNI_SetObjectArrayElement) (JNIEnv *env, jobjectArray array, 
-                                         jsize index, jobject value)
+JNICALL _Jv_JNI_SetObjectArrayElement (JNIEnv *env, jobjectArray array, 
+                                       jsize index, jobject value)
 {
   try
     {
@@ -1444,7 +1444,7 @@
 
 template<typename T, jclass K>
 static JArray<T> *
-(JNICALL _Jv_JNI_NewPrimitiveArray) (JNIEnv *env, jsize length)
+JNICALL _Jv_JNI_NewPrimitiveArray (JNIEnv *env, jsize length)
 {
   try
     {
@@ -1459,8 +1459,8 @@
 
 template<typename T, jclass K>
 static T *
-(JNICALL _Jv_JNI_GetPrimitiveArrayElements) (JNIEnv *env, JArray<T> *array,
-				             jboolean *isCopy)
+JNICALL _Jv_JNI_GetPrimitiveArrayElements (JNIEnv *env, JArray<T> *array,
+				           jboolean *isCopy)
 {
   array = unwrap (array);
   if (! _Jv_JNI_check_types (env, array, K))
@@ -1477,8 +1477,8 @@
 
 template<typename T, jclass K>
 static void
-(JNICALL _Jv_JNI_ReleasePrimitiveArrayElements) (JNIEnv *env, JArray<T> *array,
-				                 T *, jint /* mode */)
+JNICALL _Jv_JNI_ReleasePrimitiveArrayElements (JNIEnv *env, JArray<T> *array,
+				               T *, jint /* mode */)
 {
   array = unwrap (array);
   _Jv_JNI_check_types (env, array, K);
@@ -1490,9 +1490,8 @@
 
 template<typename T, jclass K>
 static void
-(JNICALL _Jv_JNI_GetPrimitiveArrayRegion) (JNIEnv *env, JArray<T> *array,
-				           jsize start, jsize len,
-				 T *buf)
+JNICALL _Jv_JNI_GetPrimitiveArrayRegion (JNIEnv *env, JArray<T> *array,
+				         jsize start, jsize len, T *buf)
 {
   array = unwrap (array);
   if (! _Jv_JNI_check_types (env, array, K))
@@ -1522,8 +1521,8 @@
 
 template<typename T, jclass K>
 static void
-(JNICALL _Jv_JNI_SetPrimitiveArrayRegion) (JNIEnv *env, JArray<T> *array,
-				           jsize start, jsize len, T *buf)
+JNICALL _Jv_JNI_SetPrimitiveArrayRegion (JNIEnv *env, JArray<T> *array,
+				         jsize start, jsize len, T *buf)
 {
   array = unwrap (array);
   if (! _Jv_JNI_check_types (env, array, K))
@@ -1551,8 +1550,8 @@
 }
 
 static void *
-(JNICALL _Jv_JNI_GetPrimitiveArrayCritical) (JNIEnv *, jarray array,
-				             jboolean *isCopy)
+JNICALL _Jv_JNI_GetPrimitiveArrayCritical (JNIEnv *, jarray array,
+				           jboolean *isCopy)
 {
   array = unwrap (array);
   // FIXME: does this work?
@@ -1565,13 +1564,13 @@
 }
 
 static void
-(JNICALL _Jv_JNI_ReleasePrimitiveArrayCritical) (JNIEnv *, jarray, void *, jint)
+JNICALL _Jv_JNI_ReleasePrimitiveArrayCritical (JNIEnv *, jarray, void *, jint)
 {
   // Nothing.
 }
 
 static jint
-(JNICALL _Jv_JNI_MonitorEnter) (JNIEnv *env, jobject obj)
+JNICALL _Jv_JNI_MonitorEnter (JNIEnv *env, jobject obj)
 {
   try
     {
@@ -1586,7 +1585,7 @@
 }
 
 static jint
-(JNICALL _Jv_JNI_MonitorExit) (JNIEnv *env, jobject obj)
+JNICALL _Jv_JNI_MonitorExit (JNIEnv *env, jobject obj)
 {
   try
     {
@@ -1602,8 +1601,8 @@
 
 // JDK 1.2
 jobject
-(JNICALL _Jv_JNI_ToReflectedField) (JNIEnv *env, jclass cls, jfieldID fieldID,
-			            jboolean)
+JNICALL _Jv_JNI_ToReflectedField (JNIEnv *env, jclass cls, jfieldID fieldID,
+			          jboolean)
 {
   try
     {
@@ -1623,7 +1622,7 @@
 
 // JDK 1.2
 static jfieldID
-(JNICALL _Jv_JNI_FromReflectedField) (JNIEnv *, jobject f)
+JNICALL _Jv_JNI_FromReflectedField (JNIEnv *, jobject f)
 {
   using namespace java::lang::reflect;
 
@@ -1633,8 +1632,8 @@
 }
 
 jobject
-(JNICALL _Jv_JNI_ToReflectedMethod) (JNIEnv *env, jclass klass, jmethodID id,
-        		             jboolean)
+JNICALL _Jv_JNI_ToReflectedMethod (JNIEnv *env, jclass klass, jmethodID id,
+        		           jboolean)
 {
   using namespace java::lang::reflect;
 
@@ -1668,7 +1667,7 @@
 }
 
 static jmethodID
-(JNICALL _Jv_JNI_FromReflectedMethod) (JNIEnv *, jobject method)
+JNICALL _Jv_JNI_FromReflectedMethod (JNIEnv *, jobject method)
 {
   using namespace java::lang::reflect;
   method = unwrap (method);
@@ -1680,7 +1679,7 @@
 
 // JDK 1.2.
 jweak
-(JNICALL _Jv_JNI_NewWeakGlobalRef) (JNIEnv *env, jobject obj)
+JNICALL _Jv_JNI_NewWeakGlobalRef (JNIEnv *env, jobject obj)
 {
   using namespace gnu::gcj::runtime;
   JNIWeakRef *ref = NULL;
@@ -1701,7 +1700,7 @@
 }
 
 void
-(JNICALL _Jv_JNI_DeleteWeakGlobalRef) (JNIEnv *, jweak obj)
+JNICALL _Jv_JNI_DeleteWeakGlobalRef (JNIEnv *, jweak obj)
 {
   using namespace gnu::gcj::runtime;
   JNIWeakRef *ref = reinterpret_cast<JNIWeakRef *> (obj);
@@ -1714,7 +1713,7 @@
 // Direct byte buffers.
 
 static jobject
-(JNICALL _Jv_JNI_NewDirectByteBuffer) (JNIEnv *, void *address, jlong length)
+JNICALL _Jv_JNI_NewDirectByteBuffer (JNIEnv *, void *address, jlong length)
 {
   using namespace gnu::gcj;
   using namespace java::nio;
@@ -1723,7 +1722,7 @@
 }
 
 static void *
-(JNICALL _Jv_JNI_GetDirectBufferAddress) (JNIEnv *, jobject buffer)
+JNICALL _Jv_JNI_GetDirectBufferAddress (JNIEnv *, jobject buffer)
 {
   using namespace java::nio;
   DirectByteBufferImpl* bb = static_cast<DirectByteBufferImpl *> (buffer);
@@ -1731,7 +1730,7 @@
 }
 
 static jlong
-(JNICALL _Jv_JNI_GetDirectBufferCapacity) (JNIEnv *, jobject buffer)
+JNICALL _Jv_JNI_GetDirectBufferCapacity (JNIEnv *, jobject buffer)
 {
   using namespace java::nio;
   DirectByteBufferImpl* bb = static_cast<DirectByteBufferImpl *> (buffer);
@@ -1855,9 +1854,9 @@
 }
 
 static jint
-(JNICALL _Jv_JNI_RegisterNatives) (JNIEnv *env, jclass klass,
-			           const JNINativeMethod *methods,
-			           jint nMethods)
+JNICALL _Jv_JNI_RegisterNatives (JNIEnv *env, jclass klass,
+			         const JNINativeMethod *methods,
+			         jint nMethods)
 {
   // Synchronize while we do the work.  This must match
   // synchronization in some other functions that manipulate or use
@@ -1909,7 +1908,7 @@
 }
 
 static jint
-(JNICALL _Jv_JNI_UnregisterNatives) (JNIEnv *, jclass)
+JNICALL _Jv_JNI_UnregisterNatives (JNIEnv *, jclass)
 {
   // FIXME -- we could implement this.
   return JNI_ERR;
@@ -2296,20 +2295,20 @@
 
 // This is the one actually used by JNI.
 static jint
-(JNICALL _Jv_JNI_AttachCurrentThread) (JavaVM *vm, void **penv, void *args)
+JNICALL _Jv_JNI_AttachCurrentThread (JavaVM *vm, void **penv, void *args)
 {
   return _Jv_JNI_AttachCurrentThread (vm, NULL, penv, args, false);
 }
 
 static jint
-(JNICALL _Jv_JNI_AttachCurrentThreadAsDaemon) (JavaVM *vm, void **penv, 
-                                               void *args)
+JNICALL _Jv_JNI_AttachCurrentThreadAsDaemon (JavaVM *vm, void **penv, 
+                                             void *args)
 {
   return _Jv_JNI_AttachCurrentThread (vm, NULL, penv, args, true);
 }
 
 static jint
-(JNICALL _Jv_JNI_DestroyJavaVM) (JavaVM *vm)
+JNICALL _Jv_JNI_DestroyJavaVM (JavaVM *vm)
 {
   JvAssert (the_vm && vm == the_vm);
 
@@ -2343,14 +2342,14 @@
 }
 
 jint
-(JNICALL _Jv_JNI_DetachCurrentThread) (JavaVM *)
+JNICALL _Jv_JNI_DetachCurrentThread (JavaVM *)
 {
   jint code = _Jv_DetachCurrentThread ();
   return code  ? JNI_EDETACHED : 0;
 }
 
 static jint
-(JNICALL _Jv_JNI_GetEnv) (JavaVM *, void **penv, jint version)
+JNICALL _Jv_JNI_GetEnv (JavaVM *, void **penv, jint version)
 {
   if (_Jv_ThreadCurrent () == NULL)
     {
@@ -2502,7 +2501,7 @@
 }
 
 static jint
-(JNICALL _Jv_JNI_GetJavaVM) (JNIEnv *, JavaVM **vm)
+JNICALL _Jv_JNI_GetJavaVM (JNIEnv *, JavaVM **vm)
 {
   *vm = _Jv_GetJavaVM ();
   return *vm == NULL ? JNI_ERR : JNI_OK;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/win32-threads.cc gcc-3.4.4-3/libjava/win32-threads.cc
--- gcc-3.4.4-3-orig/libjava/win32-threads.cc	2003-10-31 03:36:38.000000000 +0000
+++ gcc-3.4.4-3/libjava/win32-threads.cc	2005-06-03 21:03:42.000000000 +0100
@@ -262,6 +262,7 @@
 {
   _Jv_Thread_t *data = (_Jv_Thread_t*)_Jv_Malloc(sizeof(_Jv_Thread_t));
   data->flags = 0;
+  data->handle = 0;
   data->thread_obj = obj;
   data->interrupt_event = 0;
   InitializeCriticalSection (&data->interrupt_mutex);
@@ -275,6 +276,7 @@
   DeleteCriticalSection (&data->interrupt_mutex);
   if (data->interrupt_event)
     CloseHandle(data->interrupt_event);
+  CloseHandle(data->handle);
   _Jv_Free(data);
 }
 
@@ -365,7 +367,6 @@
     return;
   data->flags |= FLAG_START;
 
-  // FIXME: handle marking the info object for GC.
   info = (struct starter *) _Jv_AllocBytes (sizeof (struct starter));
   info->method = meth;
   info->data = data;
@@ -379,7 +380,7 @@
   else
     data->flags |= FLAG_DAEMON;
 
-  GC_CreateThread(NULL, 0, really_start, info, 0, &id);
+  data->handle = GC_CreateThread(NULL, 0, really_start, info, 0, &id);
   _Jv_ThreadSetPriority(data, thread->getPriority());
 }
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libjava/win32.cc gcc-3.4.4-3/libjava/win32.cc
--- gcc-3.4.4-3-orig/libjava/win32.cc	2003-12-16 22:54:22.000000000 +0000
+++ gcc-3.4.4-3/libjava/win32.cc	2006-05-13 17:35:40.000000000 +0100
@@ -256,8 +256,8 @@
 {
   // Initialise winsock for networking
   WSADATA data;
-  if (WSAStartup (MAKEWORD (1, 1), &data))
-    MessageBox (NULL, _T("Error initialising winsock library."), _T("Error"),
+  if (WSAStartup (MAKEWORD (2, 2), &data))
+    MessageBox (NULL, _T("Error initialising winsock2 library."), _T("Error"),
     MB_OK | MB_ICONEXCLAMATION);
 
   // Install exception handler
@@ -279,11 +279,13 @@
   return t.time * 1000LL + t.millitm;
 }
 
+
 // The following definitions "fake out" mingw to think that -mthreads
 // was enabled and that mingwthr.dll was linked. GCJ-compiled
 // applications don't need this helper library because we can safely
 // detect thread death (return from Thread.run()).
 
+#if 1  // defined (GCJ_LEAK_MEMORY)
 int _CRT_MT = 1;
 
 extern "C" int
@@ -293,6 +295,7 @@
   //        approximately 24 bytes per thread created.
   return 0;
 }
+#endif
 
 static bool dirExists (LPCTSTR dir)
 {
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libobjc/gc.c gcc-3.4.4-3/libobjc/gc.c
--- gcc-3.4.4-3-orig/libobjc/gc.c	2004-12-20 22:34:18.000000000 +0000
+++ gcc-3.4.4-3/libobjc/gc.c	2005-06-03 21:03:42.000000000 +0100
@@ -26,6 +26,8 @@
    the executable file might be covered by the GNU General Public License.  */
 
 #include "tconfig.h"
+#include "coretypes.h"
+#include "tm.h"
 #include "objc.h"
 #include "encoding.h"
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/config/io/basic_file_stdio.cc gcc-3.4.4-3/libstdc++-v3/config/io/basic_file_stdio.cc
--- gcc-3.4.4-3-orig/libstdc++-v3/config/io/basic_file_stdio.cc	2004-11-08 00:41:14.000000000 +0000
+++ gcc-3.4.4-3/libstdc++-v3/config/io/basic_file_stdio.cc	2005-06-03 21:03:42.000000000 +0100
@@ -329,7 +329,7 @@
   streamsize
   __basic_file<char>::showmanyc()
   {
-#ifdef FIONREAD
+#if defined (FIONREAD) && !defined (_GNU_H_WINDOWS32_SOCKETS)
     // Pipes and sockets.    
 #ifdef _GLIBCXX_FIONREAD_TAKES_OFF_T
     off_t __num = 0;
@@ -352,10 +352,21 @@
 
 #if defined(_GLIBCXX_HAVE_S_ISREG) || defined(_GLIBCXX_HAVE_S_IFREG)
     // Regular files.
+#if defined (_GLIBCXX_USE_LFS) && defined (__MINGW32__)
+    struct _stati64 __buffer;
+    int __ret = _fstati64 (this->fd(), &__buffer);
+    if (!__ret && _GLIBCXX_ISREG(__buffer.st_mode))
+      {
+	const streamoff __off = __buffer.st_size - lseek64(this->fd(), 0,
+							   ios_base::cur);
+	return std::min(__off, streamoff(numeric_limits<streamsize>::max()));
+      }
+#else
     struct stat __buffer;
     int __ret = fstat(this->fd(), &__buffer);
     if (!__ret && _GLIBCXX_ISREG(__buffer.st_mode))
-	return __buffer.st_size - lseek(this->fd(), 0, ios_base::cur);
+      return __buffer.st_size - lseek(this->fd(), 0, ios_base::cur);
+#endif
 #endif
     return 0;
   }
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/config/os/mingw32/os_defines.h gcc-3.4.4-3/libstdc++-v3/config/os/mingw32/os_defines.h
--- gcc-3.4.4-3-orig/libstdc++-v3/config/os/mingw32/os_defines.h	2003-07-05 05:05:32.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/config/os/mingw32/os_defines.h	2005-06-03 21:03:42.000000000 +0100
@@ -45,4 +45,11 @@
 #undef NOMINMAX
 #define NOMINMAX 1
 
+// mingw32 local hack: Override  _GLIBCXX_USE_WCHAR_T for wstring
+#define _GLIBCXX_USE_WSTRING 1
+
+// mingw32 local hack: Cast long double to doubles to workaround
+// printf bug.	
+#define _GLIBCXX_NO_LONG_DOUBLE_IO 1
+
 #endif
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/configure.host gcc-3.4.4-3/libstdc++-v3/configure.host
--- gcc-3.4.4-3-orig/libstdc++-v3/configure.host	2004-10-05 17:32:50.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/configure.host	2006-05-13 17:35:40.000000000 +0100
@@ -180,6 +180,7 @@
     ;;
   mingw32*)
     os_include_dir="os/mingw32"
+    atomicity_dir="cpu/i486"
     ;;
   netbsd*)
     os_include_dir="os/bsd/netbsd"
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/docs/html/faq/index.txt gcc-3.4.4-3/libstdc++-v3/docs/html/faq/index.txt
--- gcc-3.4.4-3-orig/libstdc++-v3/docs/html/faq/index.txt	2004-03-18 17:36:42.000000000 +0000
+++ gcc-3.4.4-3/libstdc++-v3/docs/html/faq/index.txt	2006-05-13 17:35:40.000000000 +0100
@@ -1,18 +1,18 @@
 
    #[1]GNU C++ Standard Library [2]Copyright
-   
+
                      libstdc++ Frequently Asked Questions
-                                       
+
    The latest version of this document is always available at
    [3]http://gcc.gnu.org/onlinedocs/libstdc++/faq/. The main
    documentation page is at
    [4]http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html. 
-   
+
    To the [5]libstdc++-v3 homepage. 
      _________________________________________________________________
-   
+
                                    Questions
-                                       
+
     1. [6]General Information
          1. [7]What is libstdc++-v3?
          2. [8]Why should I use libstdc++?
@@ -71,9 +71,9 @@
          9. [57]How do I make std::vector<T>::capacity() ==
             std::vector<T>::size?
      _________________________________________________________________
-   
+
                             1.0 General Information
-                                       
+
 1.1 What is libstdc++-v3?
 
    The GNU Standard C++ Library v3 is an ongoing project to implement the
@@ -85,15 +85,15 @@
    just want the latest bleeding-edge code, the up-to-date source is
    available over anonymous CVS, and can even be browsed over the Web
    (see [59]1.4 below).
-   
+
    The older libstdc++-v2 project is no longer maintained; the code has
    been completely replaced and rewritten. [60]If you are using V2, then
    you need to report bugs to your system vendor, not to the V3 list.
-   
+
    A more formal description of the V3 goals can be found in the official
    [61]design document.
      _________________________________________________________________
-   
+
 1.2 Why should I use libstdc++?
 
    The completion of the ISO C++ standardization gave the C++ community a
@@ -101,51 +101,51 @@
    Library. However, all existing C++ implementations are (as the Draft
    Standard used to say) "incomplet and incorrekt," and many suffer from
    limitations of the compilers that use them.
-   
+
    The GNU C/C++/FORTRAN/<pick-a-language> compiler (gcc, g++, etc) is
    widely considered to be one of the leading compilers in the world. Its
    development has recently been taken over by the [62]GCC team. All of
    the rapid development and near-legendary [63]portability that are the
    hallmarks of an open-source project are being applied to libstdc++.
-   
+
    That means that all of the Standard classes and functions (such as
    string, vector<>, iostreams, and algorithms) will be freely available
    and fully compliant. Programmers will no longer need to "roll their
    own" nor be worried about platform-specific incompatibilities.
      _________________________________________________________________
-   
+
 1.3 Who's in charge of it?
 
    The libstdc++ project is contributed to by several developers all over
    the world, in the same way as GCC or Linux. Benjamin Kosnik, Gabriel
    Dos Reis, Phil Edwards, Ulrich Drepper, Loren James Rittle, and Paolo
    Carlini are the lead maintainers of the CVS archive.
-   
+
    Development and discussion is held on the libstdc++ mailing list.
    Subscribing to the list, or searching the list archives, is open to
    everyone. You can read instructions for doing so on the [64]homepage.
    If you have questions, ideas, code, or are just curious, sign up!
      _________________________________________________________________
-   
+
 1.4 How do I get libstdc++?
 
    The [65]homepage has instructions for retrieving the latest CVS
    sources, and for browsing the CVS sources over the web.
-   
+
    Stable versions of libstdc++-v3 are included with releases of [66]the
    GCC compilers.
-   
+
    The subset commonly known as the Standard Template Library (chapters
    23 through 25, mostly) is adapted from the final release of the SGI
    STL.
      _________________________________________________________________
-   
+
 1.5 When is libstdc++ going to be finished?
 
    Nathan Myers gave the best of all possible answers, responding to a
    Usenet article asking this question: Sooner, if you help.
      _________________________________________________________________
-   
+
 1.6 How do I contribute to the effort?
 
    Here is [67]a page devoted to this topic. Subscribing to the mailing
@@ -155,25 +155,25 @@
    is willing to help write documentation, for example, or has found a
    bug in code that we all thought was working, is more than welcome!
      _________________________________________________________________
-   
+
 1.7 What happened to libg++? I need that!
 
    The most recent libg++ README states that libg++ is no longer being
    actively maintained. It should not be used for new projects, and is
    only being kicked along to support older code.
-   
+
    The libg++ was designed and created when there was no Standard to
    provide guidance. Classes like linked lists are now provided for by
    list<T> and do not need to be created by genclass. (For that matter,
    templates exist now and are well-supported, whereas genclass (mostly)
    predates them.)
-   
+
    There are other classes in libg++ that are not specified in the ISO
    Standard (e.g., statistical analysis). While there are a lot of really
    useful things that are used by a lot of people (e.g., statistics :-),
    the Standards Committee couldn't include everything, and so a lot of
    those "obvious" classes didn't get included.
-   
+
    Since libstdc++ is an implementation of the Standard Library, we have
    no plans at this time to include non-Standard utilities in the
    implementation, however handy they are. (The extensions provided in
@@ -182,15 +182,15 @@
    entirely plausable that the "useful stuff" from libg++ might be
    extracted into an updated utilities library, but nobody has started
    such a project yet.
-   
+
    (The [68]Boost site houses free C++ libraries that do varying things,
    and happened to be started by members of the Standards Committee.
    Certain "useful stuff" classes will probably migrate there.)
-   
+
    For the bold and/or desperate, the [69]GCC extensions page describes
    where to find the last libg++ source.
      _________________________________________________________________
-   
+
 1.8 What if I have more questions?
 
    If you have read the README and RELEASE-NOTES files, and your question
@@ -198,19 +198,19 @@
    not need to be subscribed to the list to send a message to it. More
    information is available on the homepage (including how to browse the
    list archives); to send to the list, use [70]libstdc++@gcc.gnu.org.
-   
+
    If you have a question that you think should be included here, or if
    you have a question about a question/answer here, contact [71]Phil
    Edwards or [72]Gabriel Dos Reis.
      _________________________________________________________________
-   
+
 1.9 What are the license terms for libstdc++-v3?
 
    See [73]our license description for these and related questions.
      _________________________________________________________________
-   
+
                                2.0 Installation
-                                       
+
 2.1 How do I install libstdc++-v3?
 
    Complete instructions are not given here (this is a FAQ, not an
@@ -222,26 +222,26 @@
      * GNU Make is recommended, but should not be required.
      * The GNU Autotools are needed if you are messing with the configury
        or makefiles.
-       
+
    The file [74]documentation.html provides a good overview of the steps
    necessary to build, install, and use the library. Instructions for
    configuring the library with new flags such as --enable-threads are
    there also, as well as patches and instructions for working with GCC
    2.95.
-   
+
    The top-level install.html and [75]RELEASE-NOTES files contain the
    exact build and installation instructions. You may wish to browse
    those files over CVSweb ahead of time to get a feel for what's
    required. RELEASE-NOTES is located in the ".../docs/17_intro/"
    directory of the distribution.
      _________________________________________________________________
-   
+
 2.2 [removed]
 
    This question has become moot and has been removed. The stub is here
    to preserve numbering (and hence links/bookmarks).
      _________________________________________________________________
-   
+
 2.3 What is this CVS thing that you keep mentioning?
 
    The Concurrent Versions System is one of several revision control
@@ -249,30 +249,30 @@
    free (beer), and very high quality. The [76]CVS entry in the GNU
    software catalogue has a better description as well as a [77]link to
    the makers of CVS.
-   
+
    The "anonymous client checkout" feature of CVS is similar to anonymous
    FTP in that it allows anyone to retrieve the latest libstdc++ sources.
-   
+
    After the first of April, American users will have a "/pharmacy"
    command-line option...
      _________________________________________________________________
-   
+
 2.4 How do I know if it works?
 
    libstdc++-v3 comes with its own testsuite. You do not need to actually
    install the library ("make install") to run the testsuite, but you do
    need DejaGNU, as described [78]here.
-   
+
    To run the testsuite on the library after building it, use "make
    check" while in your build directory. To run the testsuite on the
    library after building and installing it, use "make check-install"
    instead.
-   
+
    If you find bugs in the testsuite programs themselves, or if you think
    of a new test program that should be added to the suite, please write
    up your idea and send it to the list!
      _________________________________________________________________
-   
+
 2.5 This library is HUGE! And what's libsupc++?
 
    Usually the size of libraries on disk isn't noticeable. When a link
@@ -283,7 +283,7 @@
    object file is extracted. (There's nothing unique to C++ or
    libstdc++-v3 about this; it's just common behavior, given here for
    background reasons.)
-   
+
    Some of the object files which make up libstdc++.a are rather large.
    If you create a statically-linked executable with -static, those large
    object files are suddenly part of your executable. Historically the
@@ -294,33 +294,33 @@
    files in question contain template classes and template functions,
    pre-instantiated, and splitting those up causes severe maintenance
    headaches.
-   
+
    It's not a bug, and it's not really a problem. Nevertheless, some
    people don't like it, so here are two pseudo-solutions:
-   
+
    If the only functions from libstdc++.a which you need are language
    support functions (those listed in [79]clause 18 of the standard,
-   e.g., new and delete), then try linking against libsupc++.a (usually
-   specifying -lsupc++ when calling g++ for the final link step will do
-   it). This library contains only those support routines, one per object
-   file. But if you are using anything from the rest of the library, such
-   as IOStreams or vectors, then you'll still need pieces from
-   libstdc++.a.
-   
+   e.g., new and delete), then try linking against libsupc++.a (Using gcc
+   instead of g++ and explicitly linking in -lsupc++ for the final link
+   step will do it). This library contains only those support routines,
+   one per object file. But if you are using anything from the rest of
+   the library, such as IOStreams or vectors, then you'll still need
+   pieces from libstdc++.a.
+
    The second method is one we hope to incorporate into the library build
    process. Some platforms can place each function and variable into its
    own section in a .o file. The GNU linker can then perform garbage
    collection on unused sections; this reduces the situation to only
    copying needed functions into the executable, as before, but all
    happens automatically.
-   
+
    Unfortunately the garbage collection in GNU ld is buggy; sections
    (corresponding to functions and variables) which are used are
    mistakenly removed, leading to horrible crashes when your executable
    starts up. For the time being, this feature is not used when building
    the library.
      _________________________________________________________________
-   
+
 2.6 Why do I get an error saying libstdc++.so.X is missing when I run my
 program?
 
@@ -347,19 +347,19 @@
    LD_LIBRARY_PATH_32/LD_LIBRARY_PATH_64 for Solaris 32-/64-bit,
    LD_LIBRARYN32_PATH/LD_LIBRARY64_PATH for Irix N32/64-bit ABIs and
    SHLIB_PATH for HP-UX.
-   
+
    See the man pages for ld(1), ldd(1) and ldconfig(8) for more
    information. The dynamic linker has different names on different
    platforms but the man page is usually called something such as ld.so /
    rtld / dld.so.
      _________________________________________________________________
-   
+
                          3.0 Platform-Specific Issues
-                                       
+
 3.1 Can libstdc++-v3 be used with <my favorite compiler>?
 
    Probably not. Yet.
-   
+
    Because GCC advances so rapidly, development and testing of libstdc++
    is being done almost entirely under that compiler. If you are curious
    about whether other, lesser compilers (*grin*) support libstdc++, you
@@ -367,79 +367,79 @@
    (see above) will still require certain tools, however. Also keep in
    mind that building libstdc++ does not imply that your compiler will be
    able to use all of the features found in the C++ Standard Library.
-   
+
    Since the goal of ISO Standardization is for all C++ implementations
    to be able to share code, the final libstdc++ should, in theory, be
    usable under any ISO-compliant compiler. It will still be targeted and
    optimized for GCC/g++, however.
      _________________________________________________________________
-   
+
 3.2 [removed]
 
    This question has become moot and has been removed. The stub is here
    to preserve numbering (and hence links/bookmarks).
      _________________________________________________________________
-   
+
 3.3 [removed]
 
    This question has become moot and has been removed. The stub is here
    to preserve numbering (and hence links/bookmarks).
      _________________________________________________________________
-   
+
 3.4 I can't use 'long long' on Solaris
 
    By default we try to support the C99 long long type. This requires
    that certain functions from your C library be present.
-   
+
    Up through release 3.0.2 the tests performed were too general, and
    this feature was disabled when it did not need to be. The most
    commonly reported platform affected was Solaris.
-   
+
    This has been fixed for 3.0.3 and onwards.
      _________________________________________________________________
-   
+
 3.5 _XOPEN_SOURCE / _GNU_SOURCE / etc is always defined
 
    On Solaris, g++ (but not gcc) always defines the preprocessor macro
    _XOPEN_SOURCE. On GNU/Linux, the same happens with _GNU_SOURCE. (This
    is not an exhaustive list; other macros and other platforms are also
    affected.)
-   
+
    These macros are typically used in C library headers, guarding new
    versions of functions from their older versions. The C++ standard
    library includes the C standard library, but it requires the C90
    version, which for backwards-compatability reasons is often not the
    default for many vendors.
-   
+
    More to the point, the C++ standard requires behavior which is only
    available on certain platforms after certain symbols are defined.
    Usually the issue involves I/O-related typedefs. In order to ensure
    correctness, the compiler simply predefines those symbols.
-   
+
    Note that it's not enough to #define them only when the library is
    being built (during installation). Since we don't have an 'export'
    keyword, much of the library exists as headers, which means that the
    symbols must also be defined as your programs are parsed and compiled.
-   
+
    To see which symbols are defined, look for CPLUSPLUS_CPP_SPEC in the
    gcc config headers for your target (and try changing them to see what
    happens when building complicated code). You can also run "g++ -E -dM
    - < /dev/null" to display a list of predefined macros for any
    particular installation.
-   
+
    This has been discussed on the mailing lists [80]quite a bit.
-   
+
    This method is something of a wart. We'd like to find a cleaner
    solution, but nobody yet has contributed the time.
      _________________________________________________________________
-   
+
 3.6 OS X ctype.h is broken! How can I hack it?
 
    This is a long-standing bug in the OS X support. Fortunately, the
    patch is quite simple, and well-known. [81]Here's a link to the
    solution.
      _________________________________________________________________
-   
+
 3.7 Threading is broken on i386
 
    Support for atomic integer operations is/was broken on i386 platforms.
@@ -448,10 +448,10 @@
    i386-linux, but actually used the programs on an i686, then you would
    encounter no problems. Only when actually running the code on a i386
    will the problem appear.
-   
+
    This is fixed in 3.2.2.
      _________________________________________________________________
-   
+
 3.8 Recent GNU/Linux glibc required?
 
    When running on GNU/Linux, libstdc++ 3.2.1 (shared library version
@@ -459,12 +459,12 @@
    C library (glibc) version 2.2.5. That version of glibc is over a year
    old and contains necessary bugfixes. Many GNU/Linux distros make glibc
    version 2.3.x available now.
-   
+
    The guideline is simple: the more recent the C++ library, the more
    recent the C library. (This is also documented in the main GCC
    installation instructions.)
      _________________________________________________________________
-   
+
 3.9 Can't use wchar_t/wstring on FreeBSD
 
    At the moment there are a few problems in FreeBSD's support for wide
@@ -472,30 +472,30 @@
    that wchar_t support should be disabled. Once the underlying problems
    are fixed in FreeBSD (soon), the library support will automatically
    enable itself.
-   
+
    You can fix the problems yourself, and learn more about the situation,
    by reading [82]this short thread ("_GLIBCPP_USE_WCHAR_T undefined in
    FreeBSD's c++config.h?").
      _________________________________________________________________
-   
+
 3.10 MIPS atomic operations
 
    The atomic locking routines for MIPS targets requires MIPS II and
    later. A patch went in just after the 3.3 release to make mips* use
    the generic implementation instead. You can also configure for
    mipsel-elf as a workaround.
-   
+
    mips*-*-linux* continues to use the MIPS II routines, and more work in
    this area is expected.
      _________________________________________________________________
-   
+
                           4.0 Known Bugs and Non-Bugs
-                                       
+
    Note that this section can get rapdily outdated -- such is the nature
    of an open-source project. For the latest information, join the
    mailing list or look through recent archives. The RELEASE- NOTES and
    BUGS files are generally kept up-to-date.
-   
+
    For 3.0.1, the most common "bug" is an apparently missing "../" in
    include/Makefile, resulting in files like gthr.h and gthr-single.h not
    being found. Please read [83]the configuration instructions for GCC,
@@ -503,7 +503,7 @@
    and how strongly recommended it is. Building in the source directory
    is fragile, is rarely tested, and tends to break, as in this case.
    This was fixed for 3.0.2.
-   
+
    For 3.1, the most common "bug" is a parse error when using <fstream>,
    ending with a message, "bits/basic_file.h:52: parse error before `{'
    token." Please read [84]the installation instructions for GCC,
@@ -511,34 +511,34 @@
    older versions. If you install 3.1 over a 3.0.x release, then the
    wrong basic_file.h header will be found (its location changed between
    releases).
-   
+
    Please do not report these as bugs. We know about them. Reporting this
    -- or any other problem that's already been fixed -- hinders the
    development of GCC, because we have to take time to respond to your
    report. Thank you.
-   
+
 4.1 What works already?
 
    Short answer: Pretty much everything works except for some corner
    cases. Also, localization is incomplete. For whether it works well, or
    as you expect it to work, see 5.2.
-   
+
    Long answer: See the docs/html/17_intro/CHECKLIST file, which is badly
    outdated...
-   
+
    What follows is a verbatim clip from the "Status" section of the
    RELEASE-NOTES for the latest snapshot. For a list of fixed bugs, see
    that file.
 New:
      _________________________________________________________________
-   
+
 4.2 Bugs in gcc/g++ (not libstdc++-v3)
 
    This is by no means meant to be complete nor exhaustive, but mentions
    some problems that users may encounter when building or using
    libstdc++. If you are experiencing one of these problems, you can find
    more information on the libstdc++ and the GCC mailing lists.
-   
+
    Before reporting a bug, examine the [85]bugs database with the
    category set to "libstdc++". The BUGS file in the source tree also
    tracks known serious problems.
@@ -549,7 +549,7 @@
        default on your platform. Also, [86]changing your GDB settings can
        have a profound effect on your C++ debugging experiences. :-)
      _________________________________________________________________
-   
+
 4.3 Bugs in the C++ language/lib specification
 
    Yes, unfortunately, there are some. In a [87]message to the list,
@@ -558,25 +558,25 @@
    concern the library. The list itself is [88]posted on his website.
    Developers who are having problems interpreting the Standard may wish
    to consult his notes.
-   
+
    For those people who are not part of the ISO Library Group (i.e.,
    nearly all of us needing to read this page in the first place :-), a
    public list of the library defects is occasionally published [89]here.
    Some of these have resulted in [90]code changes.
      _________________________________________________________________
-   
+
 4.4 Things in libstdc++ that only look like bugs
 
    There are things which are not bugs in the compiler (4.2) nor the
    language specification (4.3), but aren't really bugs in libstdc++,
    either. Really! Please do not report these as bugs.
-   
+
    -Weffc++ The biggest of these is the quadzillions of warnings about
    the library headers emitted when -Weffc++ is used. Making libstdc++
    "-Weffc++-clean" is not a goal of the project, for a few reasons.
    Mainly, that option tries to enforce object-oriented programming,
    while the Standard Library isn't necessarily trying to be OO.
-   
+
    reopening a stream fails Did I just say that -Weffc++ was our biggest
    false-bug report? I lied. (It used to be.) Today it seems to be
    reports that after executing a sequence like
@@ -598,7 +598,7 @@
    unchanged. You must insert a call to fs.clear() between the calls to
    close() and open(), and then everything will work like we all expect
    it to work.
-   
+
    rel_ops Another is the rel_ops namespace and the template comparison
    operator functions contained therein. If they become visible in the
    same namespace as other comparison functions (e.g., 'using' them and
@@ -606,26 +606,26 @@
    numbers of ambiguity errors. This was discussed on the -v3 list;
    Nathan Myers [92]sums things up here. The collisions with
    vector/string iterator types have been fixed for 3.1.
-   
+
   The g++-3 headers are not ours
-  
+
    If you have found an extremely broken header file which is causing
    problems for you, look carefully before submitting a "high" priority
    bug report (which you probably shouldn't do anyhow; see the last
    paragraph of the page describing [93]the GCC bug database).
-   
+
    If the headers are in ${prefix}/include/g++-3, or if the installed
    library's name looks like libstdc++-2.10.a or libstdc++-libc6-2.10.so,
    then you are using the old libstdc++-v2 library, which is nonstandard
    and unmaintained. Do not report problems with -v2 to the -v3 mailing
    list.
-   
+
    For GCC versions 3.0 and 3.1 the libstdc++-v3 header files are
    installed in ${prefix}/include/g++-v3 (see the 'v'?). Starting with
    version 3.2 the headers are installed in
    ${prefix}/include/c++/${version} as this prevents headers from
    previous versions being found by mistake.
-   
+
    glibc If you're on a GNU/Linux system and have just upgraded to glibc
    2.2, but are still using gcc 2.95.2, then you should have read the
    glibc FAQ, specifically 2.34:
@@ -640,7 +640,7 @@
    Note that 2.95.x shipped with the [94]old v2 library which is no
    longer maintained. Also note that gcc 2.95.3 fixes this problem, but
    requires a separate patch for libstdc++-v3.
-   
+
    concept checks If you see compilation errors containing messages about
    fooConcept and a constraints member function, then most likely you
    have violated one of the requirements for types used during
@@ -648,10 +648,10 @@
    EqualityComparableConcept appears if your types must be comparable
    with == and you have not provided this capability (a typo, or wrong
    visibility, or you just plain forgot, etc).
-   
+
    More information, including how to optionally enable/disable the
    checks, is available [95]here.
-   
+
    dlopen/dlsym If you are using the C++ library across
    dynamically-loaded objects, make certain that you are passing the
    correct options when compiling and linking:
@@ -676,7 +676,7 @@
    want to test the library for memory leaks please read [97]Tips for
    memory leak hunting first.
      _________________________________________________________________
-   
+
 4.5 Aw, that's easy to fix!
 
    If you have found a bug in the library and you think you have a
@@ -685,7 +685,7 @@
    you should also send the patch to our mailing list in addition to the
    GCC patches mailing list. The libstdc++ [99]contributors' page also
    talks about how to submit patches.
-   
+
    In addition to the description, the patch, and the ChangeLog entry, it
    is a Good Thing if you can additionally create a small test program to
    test for the presence of the bug that your patch fixes. Bugs have a
@@ -693,26 +693,26 @@
    caught immediately by the [100]testsuite -- but only if such a test
    exists.
      _________________________________________________________________
-   
+
                                5.0 Miscellaneous
-                                       
+
 5.1 string::iterator is not char*; vector<T>::iterator is not T*
 
    If you have code that depends on container<T> iterators being
    implemented as pointer-to-T, your code is broken.
-   
+
    While there are arguments for iterators to be implemented in that
    manner, A) they aren't very good ones in the long term, and B) they
    were never guaranteed by the Standard anyway. The type-safety achieved
    by making iterators a real class rather than a typedef for T*
    outweighs nearly all opposing arguments.
-   
+
    Code which does assume that a vector iterator i is a pointer can often
    be fixed by changing i in certain expressions to &*i . Future
    revisions of the Standard are expected to bless this usage for
    vector<> (but not for basic_string<>).
      _________________________________________________________________
-   
+
 5.2 What's next after libstdc++-v3?
 
    Hopefully, not much. The goal of libstdc++-v3 is to produce a
@@ -739,27 +739,27 @@
        they seem to be "standard" enough. (For example, the "long long"
        type from C99.) Bugfixes and rewrites (to improve or fix thread
        safety, for instance) will of course be a continuing task.
-       
+
    [102]This question about the next libstdc++ prompted some brief but
    interesting [103]speculation.
      _________________________________________________________________
-   
+
 5.3 What about the STL from SGI?
 
    The [104]STL from SGI, version 3.3, was the most recent merge of the
    STL codebase. The code in libstdc++ contains many fixes and changes,
    and it is very likely that the SGI code is no longer under active
    development. We expect that no future merges will take place.
-   
+
    In particular, string is not from SGI and makes no use of their "rope"
    class (which is included as an optional extension), nor is valarray
    and some others. Classes like vector<> are, however we have made
    significant changes to them since then.
-   
+
    The FAQ for SGI's STL (one jump off of their main page) is recommended
    reading.
      _________________________________________________________________
-   
+
 5.4 Extensions and Backward Compatibility
 
    Headers in the ext and backward subdirectories should be referred to
@@ -770,7 +770,7 @@
    forward-compatible. (The situation is the same as that of other
    headers whose directories are not searched directly, e.g.,
    <sys/stat.h>, <X11/Xlib.h>.
-   
+
    The extensions are no longer in the global or std namespaces, instead
    they are declared in the __gnu_cxx namespace. For maximum portability,
    consider defining a namespace alias to use to talk about extensions,
@@ -795,20 +795,20 @@
 
    This is a bit cleaner than defining typedefs for all the
    instantiations you might need.
-   
+
    Note: explicit template specializations must be declared in the same
    namespace as the original template. This means you cannot use a
    namespace alias when declaring an explicit specialization.
-   
+
    Extensions to the library have [105]their own page.
      _________________________________________________________________
-   
+
 5.5 [removed]
 
    This question has become moot and has been removed. The stub is here
    to preserve numbering (and hence links/bookmarks).
      _________________________________________________________________
-   
+
 5.6 Is libstdc++-v3 thread-safe?
 
    libstdc++-v3 strives to be thread-safe when all of the following
@@ -817,7 +817,7 @@
      * gcc -v reports a thread model other than 'single',
      * [pre-3.3 only] a non-generic implementation of atomicity.h exists
        for the architecture in question.
-       
+
    The user-code must guard against concurrent method calls which may
    access any particular library object's state. Typically, the
    application programmer may infer what object locks must be held based
@@ -852,11 +852,11 @@
    both read and write access to objects; unless otherwise documented as
    safe, do not assume that two threads may access a shared standard
    library object at the same time.
-   
+
    See chapters [106]17 (library introduction), [107]23 (containers), and
    [108]27 (I/O) for more information.
      _________________________________________________________________
-   
+
 5.7 How do I get a copy of the ISO C++ Standard?
 
    Copies of the full ISO 14882 standard are available on line via the
@@ -868,11 +868,11 @@
    right [109]here. (And if you've already registered with them, clicking
    this link will take you to directly to the place where you can
    [110]buy the standard on-line.
-   
+
    Who is your country's member body? Visit the [111]ISO homepage and
    find out!
      _________________________________________________________________
-   
+
 5.8 What's an ABI and why is it so messy?
 
    "ABI" stands for "Application Binary Interface." Conventionally, it
@@ -885,7 +885,7 @@
    one ABI and all the OSes and compilers use it. In practice every ABI
    omits details that compiler implementers (consciously or accidentally)
    must choose for themselves.
-   
+
    That ABI definition suffices for compilers to generate code so a
    program can interact safely with an OS and its lowest-level libraries.
    Users usually want an ABI to encompass more detail, allowing libraries
@@ -898,7 +898,7 @@
    C++, and is immediately useful for embedded work relying only on a
    "free-standing implementation" that doesn't include (much of) the
    standard library. It is a good basis for the work to come.
-   
+
    A useful C++ ABI must also incorporate many details of the standard
    library implementation. For a C ABI, the layouts of a few structs
    (such as FILE, stat, jmpbuf, and the like) and a few macros suffice.
@@ -910,7 +910,7 @@
    documenting library implementation details, but carefully designing
    those details so that future bug fixes and optimizations don't force
    breaking the ABI.
-   
+
    There are ways to help isolate library implementation details from the
    ABI, but they trade off against speed. Library details used in inner
    loops (e.g., getchar) must be exposed and frozen for all time, but
@@ -919,7 +919,7 @@
    happen before you can reasonably document a candidate C++ ABI that
    encompasses the standard library.
      _________________________________________________________________
-   
+
 5.9 How do I make std::vector<T>::capacity() == std::vector<T>::size()?
 
    The standard idiom for deallocating a std::vector<T>'s unused memory
@@ -929,10 +929,10 @@
 
 
    The copy will take O(n) time and the swap is constant time.
-   
+
    See [112]Shrink-to-fit strings for a similar solution for strings.
      _________________________________________________________________
-   
+
    See [113]license.html for copying conditions. Comments and suggestions
    are welcome, and may be sent to [114]the libstdc++ mailing list. 
 
@@ -1030,7 +1030,7 @@
   90. ../faq/index.html#5_2
   91. ../ext/howto.html#5
   92. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html
-  93. http://gcc.gnu.org/gnatswrite.html
+  93. http://gcc.gnu.org/bugs.html
   94. ../faq/index.html#4_4_interface
   95. ../19_diagnostics/howto.html#3
   96. http://developer.kde.org/~sewardj/
@@ -1047,7 +1047,7 @@
  107. ../23_containers/howto.html#3
  108. ../27_io/howto.html#9
  109. http://www.ansi.org/
- 110. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998
+ 110. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%3A2003
  111. http://www.iso.ch/
  112. ../21_strings/howto.html#6
  113. ../17_intro/license.html
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/include/Makefile.am gcc-3.4.4-3/libstdc++-v3/include/Makefile.am
--- gcc-3.4.4-3-orig/libstdc++-v3/include/Makefile.am	2004-09-27 18:26:46.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/include/Makefile.am	2006-05-13 17:35:40.000000000 +0100
@@ -540,8 +540,8 @@
 	if [ ! -d "${pch_output_builddir}" ]; then \
 	  mkdir -p ${pch_output_builddir}; \
 	fi; \
-	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g; \
-	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g;
+	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g.gch; \
+	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g.gch;
 
 # For robustness sake (in light of junk files or in-source
 # configuration), copy from the build or source tree to the install
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/include/Makefile.in gcc-3.4.4-3/libstdc++-v3/include/Makefile.in
--- gcc-3.4.4-3-orig/libstdc++-v3/include/Makefile.in	2004-09-27 18:26:46.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/include/Makefile.in	2006-05-13 17:35:40.000000000 +0100
@@ -895,8 +895,8 @@
 	if [ ! -d "${pch_output_builddir}" ]; then \
 	  mkdir -p ${pch_output_builddir}; \
 	fi; \
-	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g; \
-	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g;
+	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g.gch; \
+	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g.gch;
 
 # For robustness sake (in light of junk files or in-source
 # configuration), copy from the build or source tree to the install
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/include/bits/basic_string.h gcc-3.4.4-3/libstdc++-v3/include/bits/basic_string.h
--- gcc-3.4.4-3-orig/libstdc++-v3/include/bits/basic_string.h	2005-04-25 12:02:02.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/include/bits/basic_string.h	2006-05-17 02:39:42.000000000 +0100
@@ -211,11 +211,8 @@
 	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(&this->_M_refcount, -1) <= 0)
-	      _M_destroy(__a);
+	  if (__gnu_cxx::__exchange_and_add(&this->_M_refcount, -1) <= 0)
+	    _M_destroy(__a);
 	}  // XXX MT
 
 	void
@@ -224,10 +221,7 @@
 	_CharT*
 	_M_refcopy() throw()
 	{
-#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
-	  if (__builtin_expect(this != &_S_empty_rep(), false))
-#endif
-            __gnu_cxx::__atomic_add(&this->_M_refcount, 1);
+	  __gnu_cxx::__atomic_add(&this->_M_refcount, 1);
 	  return _M_refdata();
 	}  // XXX MT
 
@@ -1984,11 +1978,7 @@
   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 -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/include/bits/basic_string.tcc gcc-3.4.4-3/libstdc++-v3/include/bits/basic_string.tcc
--- gcc-3.4.4-3-orig/libstdc++-v3/include/bits/basic_string.tcc	2004-10-28 22:52:40.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/include/bits/basic_string.tcc	2006-05-17 02:39:42.000000000 +0100
@@ -88,10 +88,9 @@
       _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;
@@ -136,10 +135,9 @@
       _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(__is_null_pointer(__beg) && __beg != __end, 0))
 	  __throw_logic_error(__N("basic_string::_S_construct NULL not valid"));
@@ -165,10 +163,9 @@
     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)
@@ -362,10 +359,6 @@
     basic_string<_CharT, _Traits, _Alloc>::_Rep::
     _M_destroy(const _Alloc& __a) throw ()
     {
-#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
-      if (this == &_S_empty_rep())
-	return;
-#endif
       const size_type __size = sizeof(_Rep_base) +
 	                       (this->_M_capacity + 1) * sizeof(_CharT);
       _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
@@ -375,10 +368,6 @@
     void
     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 -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/include/bits/char_traits.h gcc-3.4.4-3/libstdc++-v3/include/bits/char_traits.h
--- gcc-3.4.4-3-orig/libstdc++-v3/include/bits/char_traits.h	2004-03-18 17:36:48.000000000 +0000
+++ gcc-3.4.4-3/libstdc++-v3/include/bits/char_traits.h	2006-05-13 17:35:40.000000000 +0100
@@ -296,7 +296,7 @@
   };
 
 
-#ifdef _GLIBCXX_USE_WCHAR_T
+#if defined (_GLIBCXX_USE_WCHAR_T) || defined (_GLIBCXX_USE_WSTRING)
   /// 21.1.3.2  char_traits specializations
   template<>
     struct char_traits<wchar_t>
@@ -306,7 +306,7 @@
       typedef streamoff         off_type;
       typedef wstreampos        pos_type;
       typedef mbstate_t         state_type;
-
+      
       static void
       assign(char_type& __c1, const char_type& __c2)
       { __c1 = __c2; }
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/include/bits/locale_facets.tcc gcc-3.4.4-3/libstdc++-v3/include/bits/locale_facets.tcc
--- gcc-3.4.4-3-orig/libstdc++-v3/include/bits/locale_facets.tcc	2004-11-18 10:50:20.000000000 +0000
+++ gcc-3.4.4-3/libstdc++-v3/include/bits/locale_facets.tcc	2006-05-13 17:35:40.000000000 +0100
@@ -325,12 +325,12 @@
 	__found_grouping.reserve(32);
       int __sep_pos = 0;
       const char_type* __lit_zero = __lit + __num_base::_S_izero;
-      const char_type* __q;
       while (__beg != __end)
         {
 	  // According to 22.2.2.1.2, p8-9, first look for thousands_sep
 	  // and decimal_point.
 	  const char_type __c = *__beg;
+	  const char_type* __q = __traits_type::find(__lit_zero, 10, __c);
           if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
 	    {
 	      if (!__found_dec && !__found_sci)
@@ -368,7 +368,7 @@
 	      else
 		break;
 	    }
-          else if (__q = __traits_type::find(__lit_zero, 10, __c))
+          else if (__q != 0)
 	    {
 	      __xtrc += __num_base::_S_atoms_in[__q - __lit];
 	      __found_mantissa = true;
@@ -509,7 +509,6 @@
 	bool __overflow = false;
 	_ValueT __result = 0;
 	const char_type* __lit_zero = __lit + __num_base::_S_izero;
-	const char_type* __q;
 	if (__negative)
 	  {
 	    const _ValueT __min = numeric_limits<_ValueT>::min() / __base;
@@ -518,6 +517,8 @@
 		// According to 22.2.2.1.2, p8-9, first look for thousands_sep
 		// and decimal_point.
 		const char_type __c = *__beg;
+		const char_type* __q = __traits_type::find(__lit_zero, 
+							   __len, __c);
 		if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
 		  {
 		    // NB: Thousands separator at the beginning of a string
@@ -535,7 +536,7 @@
 		  }
 		else if (__c == __lc->_M_decimal_point)
 		  break;
-		else if (__q = __traits_type::find(__lit_zero, __len, __c))
+		else if (__q != 0)
 		  {
 		    int __digit = __q - __lit_zero;
 		    if (__digit > 15)
@@ -563,6 +564,8 @@
 	    for (; __beg != __end; ++__beg)
 	      {
 		const char_type __c = *__beg;
+		const char_type* __q = __traits_type::find(__lit_zero, 
+							   __len, __c);
 		if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
 		  {
 		    if (__sep_pos)
@@ -578,7 +581,7 @@
 		  }
 		else if (__c == __lc->_M_decimal_point)
 		  break;
-		else if (__q = __traits_type::find(__lit_zero, __len, __c))
+		else if (__q != 0)
 		  {
 		    int __digit = __q - __lit_zero;
 		    if (__digit > 15)
@@ -765,7 +768,13 @@
       string __xtrc;
       __xtrc.reserve(32);
       __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
+#if defined (GLIBCXX_NO_LONG_DOUBLE_IO) && !defined(_GLIBCXX_USE_C99)
+      double __vd;
+      std::__convert_to_v(__xtrc.c_str(), __vd, __err, _S_get_c_locale());
+      __v = static_cast<long double>(__vd);	
+#else
       std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
+#endif
       return __beg;
     }
 
@@ -1111,8 +1120,8 @@
       // Replace decimal point.
       const _CharT __cdec = __ctype.widen('.');
       const _CharT __dec = __lc->_M_decimal_point;
-      const _CharT* __p;
-      if (__p = char_traits<_CharT>::find(__ws, __len, __cdec))
+      const _CharT* __p = char_traits<_CharT>::find(__ws, __len, __cdec);
+      if (__p)
 	__ws[__p - __ws] = __dec;
 
       // Add grouping, if necessary.
@@ -1220,7 +1229,14 @@
     num_put<_CharT, _OutIter>::
     do_put(iter_type __s, ios_base& __io, char_type __fill,
 	   long double __v) const
-    { return _M_insert_float(__s, __io, __fill, 'L', __v); }
+    {
+#ifdef  _GLIBCXX_NO_LONG_DOUBLE_IO
+      return _M_insert_float(__s, __io, __fill, char_type(),
+			      static_cast<double>(__v));
+#else
+      return _M_insert_float(__s, __io, __fill, 'L', __v);
+#endif
+    }
 
   template<typename _CharT, typename _OutIter>
     _OutIter
@@ -1285,7 +1301,6 @@
 	__res.reserve(32);
 
 	const char_type* __lit_zero = __lit + money_base::_S_zero;
-	const char_type* __q;
 	const money_base::pattern __p = __lc->_M_neg_format;	
 	for (int __i = 0; __i < 4 && __testvalid; ++__i)
 	  {
@@ -1347,35 +1362,40 @@
 		// Extract digits, remove and stash away the
 		// grouping of found thousands separators.
 		for (; __beg != __end; ++__beg)
-		  if (__q = __traits_type::find(__lit_zero, 10, *__beg))
-		    {
-		      __res += money_base::_S_atoms[__q - __lit];
-		      ++__n;
-		    }
-		  else if (*__beg == __lc->_M_decimal_point && !__testdecfound)
-		    {
-		      __last_pos = __n;
-		      __n = 0;
-		      __testdecfound = true;
-		    }
-		  else if (__lc->_M_use_grouping
-			   && *__beg == __lc->_M_thousands_sep
-			   && !__testdecfound)
-		    {
-		      if (__n)
-			{
-			  // Mark position for later analysis.
-			  __grouping_tmp += static_cast<char>(__n);
-			  __n = 0;
-			}
-		      else
-			{
-			  __testvalid = false;
-			  break;
-			}
-		    }
-		  else
-		    break;
+		  {
+		    const char_type* __q = __traits_type::find(__lit_zero, 
+							       10, *__beg);
+		    if (__q != 0)
+		      {
+			__res += money_base::_S_atoms[__q - __lit];
+			++__n;
+		      }
+		    else if (*__beg == __lc->_M_decimal_point 
+			     && !__testdecfound)
+		      {
+			__last_pos = __n;
+			__n = 0;
+			__testdecfound = true;
+		      }
+		    else if (__lc->_M_use_grouping
+			     && *__beg == __lc->_M_thousands_sep
+			     && !__testdecfound)
+		      {
+			if (__n)
+			  {
+			    // Mark position for later analysis.
+			    __grouping_tmp += static_cast<char>(__n);
+			    __n = 0;
+			  }
+			else
+			  {
+			    __testvalid = false;
+			    break;
+			  }
+		      }
+		    else
+		      break;
+		  }
 		if (__res.empty())
 		  __testvalid = false;
 		break;
@@ -1464,7 +1484,13 @@
 	__beg = _M_extract<true>(__beg, __end, __io, __err, __str);
       else
 	__beg = _M_extract<false>(__beg, __end, __io, __err, __str);
+#if defined _GLIBCXX_NO_LONG_DOUBLE_IO  && !defined (_GLIBCXX_USE_C99)
+      double __dunits;
+      std::__convert_to_v(__str.c_str(), __dunits, __err, _S_get_c_locale());
+      __units = static_cast<long double>(__dunits);	
+#else  //  _GLIBCXX_NO_LONG_DOUBLE_IO && !defined (_GLIBCXX_USE_C99)
       std::__convert_to_v(__str.c_str(), __units, __err, _S_get_c_locale());
+#endif  //  _GLIBCXX_NO_LONG_DOUBLE_IO
       return __beg;
     }
 
@@ -1667,6 +1693,32 @@
     {
       const locale __loc = __io.getloc();
       const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
+#ifdef  _GLIBCXX_NO_LONG_DOUBLE_IO
+      double __dunits = static_cast<double>(__units);
+#ifdef _GLIBCXX_USE_C99
+      // First try a buffer perhaps big enough.
+      int __cs_size = 64;
+      char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 328. Bad sprintf format modifier in money_put<>::do_put()
+      int __len = std::__convert_from_v(__cs, __cs_size, "%.0f", __dunits,
+					_S_get_c_locale(), 0);
+      // If the buffer was not large enough, try again with the correct size.
+      if (__len >= __cs_size)
+	{
+	  __cs_size = __len + 1;
+	  __cs = static_cast<char*>(__builtin_alloca(__cs_size));
+	  __len = std::__convert_from_v(__cs, __cs_size, "%.*f", __dunits,
+					_S_get_c_locale(), 0);
+	}
+#else
+      // max_exponent10 + 1 for the integer part, + 2 for sign and '\0'.
+      const int __cs_size = numeric_limits<long double>::max_exponent10 + 3;
+      char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
+      int __len = std::__convert_from_v(__cs, 0, "%.*f", __dunits,
+					_S_get_c_locale(), 0);
+#endif
+#else // _GLIBCXX_NO_LONG_DOUBLE_IO
 #ifdef _GLIBCXX_USE_C99
       // First try a buffer perhaps big enough.
       int __cs_size = 64;
@@ -1690,6 +1742,7 @@
       int __len = std::__convert_from_v(__cs, 0, "%.*Lf", __units,
 					_S_get_c_locale(), 0);
 #endif
+#endif  // _GLIBCXX_NO_LONG_DOUBLE_IO
       _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
 							   * __cs_size));
       __ctype.widen(__cs, __cs + __len, __ws);
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/include/bits/stringfwd.h gcc-3.4.4-3/libstdc++-v3/include/bits/stringfwd.h
--- gcc-3.4.4-3-orig/libstdc++-v3/include/bits/stringfwd.h	2004-03-18 17:37:04.000000000 +0000
+++ gcc-3.4.4-3/libstdc++-v3/include/bits/stringfwd.h	2006-05-13 17:35:40.000000000 +0100
@@ -59,7 +59,7 @@
 
   typedef basic_string<char>    string;
 
-#ifdef _GLIBCXX_USE_WCHAR_T
+#if defined (_GLIBCXX_USE_WCHAR_T) || defined (_GLIBCXX_USE_WSTRING)
   template<> struct char_traits<wchar_t>;
 
   typedef basic_string<wchar_t> wstring;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/include/c_std/std_cwchar.h gcc-3.4.4-3/libstdc++-v3/include/c_std/std_cwchar.h
--- gcc-3.4.4-3-orig/libstdc++-v3/include/c_std/std_cwchar.h	2004-07-20 09:52:12.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/include/c_std/std_cwchar.h	2005-06-03 21:03:44.000000000 +0100
@@ -137,7 +137,7 @@
 #undef wprintf
 #undef wscanf
 
-#if _GLIBCXX_USE_WCHAR_T
+#if _GLIBCXX_USE_WCHAR_T || _GLIBCXX_USE_WSTRING
 namespace std
 {
   using ::wint_t;
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/include/c_std/std_cwctype.h gcc-3.4.4-3/libstdc++-v3/include/c_std/std_cwctype.h
--- gcc-3.4.4-3-orig/libstdc++-v3/include/c_std/std_cwctype.h	2003-12-09 03:44:36.000000000 +0000
+++ gcc-3.4.4-3/libstdc++-v3/include/c_std/std_cwctype.h	2006-05-13 17:35:40.000000000 +0100
@@ -75,7 +75,7 @@
 #undef wctrans
 #undef wctype
 
-#if _GLIBCXX_USE_WCHAR_T
+#if _GLIBCXX_USE_WCHAR_T  || _GLIBCXX_USE_WSTRING
 namespace std
 {
   using ::wint_t;	  // cwchar
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/libsupc++/Makefile.in gcc-3.4.4-3/libstdc++-v3/libsupc++/Makefile.in
--- gcc-3.4.4-3-orig/libstdc++-v3/libsupc++/Makefile.in	2004-03-18 17:37:08.000000000 +0000
+++ gcc-3.4.4-3/libstdc++-v3/libsupc++/Makefile.in	2005-06-03 21:03:44.000000000 +0100
@@ -210,7 +210,7 @@
 # These bits are all figured out from configure.  Look in acinclude.m4
 # or configure.ac to see how they are set.  See GLIBCXX_EXPORT_FLAGS.
 CONFIG_CXXFLAGS = \
-	$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS)
+	$(EXTRA_CXX_FLAGS)
 
 WARN_CXXFLAGS = \
 	$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/libsupc++/eh_term_handler.cc gcc-3.4.4-3/libstdc++-v3/libsupc++/eh_term_handler.cc
--- gcc-3.4.4-3-orig/libstdc++-v3/libsupc++/eh_term_handler.cc	2003-09-02 19:46:54.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/libsupc++/eh_term_handler.cc	2005-06-03 21:03:44.000000000 +0100
@@ -41,6 +41,7 @@
 # include <cstdlib>
 #endif
 
+#if !(defined (__MINGW32__) || defined (__CYGWIN__))
 /* The current installed user handler.  */
 std::terminate_handler __cxxabiv1::__terminate_handler =
 #if _GLIBCXX_HOSTED
@@ -49,3 +50,4 @@
 	std::abort;
 #endif
 
+#endif
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/libsupc++/eh_terminate.cc gcc-3.4.4-3/libstdc++-v3/libsupc++/eh_terminate.cc
--- gcc-3.4.4-3-orig/libstdc++-v3/libsupc++/eh_terminate.cc	2003-05-24 17:22:04.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/libsupc++/eh_terminate.cc	2006-05-13 17:35:40.000000000 +0100
@@ -50,7 +50,12 @@
 void
 std::terminate ()
 {
-  __terminate (__terminate_handler);
+#if 0 // (defined (__MINGW32__) || defined (__CYGWIN__))
+  if (__terminate_handler == NULL )
+    __terminate (__gnu_cxx::__verbose_terminate_handler);
+  else
+#endif
+    __terminate (__terminate_handler);
 }
 
 void
@@ -63,7 +68,12 @@
 void
 std::unexpected ()
 {
-  __unexpected (__unexpected_handler);
+#if  0 // (defined (__MINGW32__) || defined (__CYGWIN__))
+  if (__unexpected_handler == NULL)
+    std::terminate();
+  else
+#endif
+    __unexpected (__unexpected_handler);
 }
 
 std::terminate_handler
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/libsupc++/eh_unex_handler.cc gcc-3.4.4-3/libstdc++-v3/libsupc++/eh_unex_handler.cc
--- gcc-3.4.4-3-orig/libstdc++-v3/libsupc++/eh_unex_handler.cc	2003-05-24 17:22:04.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/libsupc++/eh_unex_handler.cc	2006-05-13 17:35:40.000000000 +0100
@@ -29,6 +29,7 @@
 
 #include "unwind-cxx.h"
 
+#if !(defined  (__MINGW32__) || defined (__CYGWIN__))
 /* The current installed user handler.  */
 std::unexpected_handler __cxxabiv1::__unexpected_handler = std::terminate;
-
+#endif
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/libsupc++/typeinfo gcc-3.4.4-3/libstdc++-v3/libsupc++/typeinfo
--- gcc-3.4.4-3-orig/libstdc++-v3/libsupc++/typeinfo	2003-07-05 05:05:40.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/libsupc++/typeinfo	2005-06-03 21:03:44.000000000 +0100
@@ -44,7 +44,7 @@
   class __class_type_info;
 } // namespace __cxxabiv1
 
-#if !__GXX_WEAK__
+#if !__GXX_WEAK__ || defined (__MINGW32__) || defined (__CYGWIN__)
   // If weak symbols are not supported, typeinfo names are not merged.
   #define __GXX_MERGED_TYPEINFO_NAMES 0
 #else
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/libsupc++/unwind-cxx.h gcc-3.4.4-3/libstdc++-v3/libsupc++/unwind-cxx.h
--- gcc-3.4.4-3-orig/libstdc++-v3/libsupc++/unwind-cxx.h	2003-07-05 05:05:42.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/libsupc++/unwind-cxx.h	2006-05-13 17:35:40.000000000 +0100
@@ -125,9 +125,16 @@
 extern void __terminate(std::terminate_handler) __attribute__((noreturn));
 extern void __unexpected(std::unexpected_handler) __attribute__((noreturn));
 
-// The current installed user handlers.
+ // The current installed user handlers.
+#if defined  (__MINGW32__) || defined (__CYGWIN__)
+extern "C" void** __w32_sharedptr_terminate;
+extern "C" void** __w32_sharedptr_unexpected;
+#define __terminate_handler (*(std::terminate_handler*)(__w32_sharedptr_terminate))
+#define __unexpected_handler (*(std::unexpected_handler*)(__w32_sharedptr_unexpected))
+#else
 extern std::terminate_handler __terminate_handler;
 extern std::unexpected_handler __unexpected_handler;
+#endif
 
 // These are explicitly GNU C++ specific.
 
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/libstdc++-v3/src/Makefile.in gcc-3.4.4-3/libstdc++-v3/src/Makefile.in
--- gcc-3.4.4-3-orig/libstdc++-v3/src/Makefile.in	2004-04-16 20:08:36.000000000 +0100
+++ gcc-3.4.4-3/libstdc++-v3/src/Makefile.in	2006-05-13 17:35:40.000000000 +0100
@@ -211,7 +211,7 @@
 # These bits are all figured out from configure.  Look in acinclude.m4
 # or configure.ac to see how they are set.  See GLIBCXX_EXPORT_FLAGS.
 CONFIG_CXXFLAGS = \
-	$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS)
+	$(EXTRA_CXX_FLAGS)
 
 WARN_CXXFLAGS = \
 	$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
diff -urdN -x .build -x .inst -x .sinst -x CVS -x MinGW -x '*.rej' -x '*.orig' -x .brik -x .cvsignore -x gcc-2.95.1.diff -x gcc-2.95.2.diff -x gcc-2.95.3-5.diff -x gcc-2.95.3-6.diff -x gcc-2.95.3-8.diff -x gcc-2.95.3.diff -x gcc-2.95.4.diff -x gcc-3.2.2.diff -x gcc-3.2.3.diff -x gcc-3.3.1.diff -x gm2-ebnf.texi -x gm2.info -x gm2.info-1 -x gm2.info-2 -x gnat_ug_unx.info -x gnat_ug_unx.texi -x gnat_ug_unx.info-1 -x gnat_ug_unx.info-2 -x gnat_ug_unx.info-3 -x gnat_ug_vms.info -x gnat_ug_vms.texi -x gnat_ug_vms.info-1 -x gnat_ug_vms.info-2 -x gnat_ug_vms.info-3 -x gnat_ug_vxw.info -x gnat_ug_vxw.texi -x gnat_ug_vxw.info-1 -x gnat_ug_vxw.info-2 -x gnat_ug_vxw.info-3 -x gnat_ug_wnt.info -x gnat_ug_wnt.texi -x gnat_ug_wnt.info-1 -x gnat_ug_wnt.info-2 -x gnat_ug_wnt.info-3 -x gnat-style.info -x gnat_rm.info -x autom4te.cache gcc-3.4.4-3-orig/ltcf-c.sh gcc-3.4.4-3/ltcf-c.sh
--- gcc-3.4.4-3-orig/ltcf-c.sh	2003-11-19 05:29:32.000000000 +0000
+++ gcc-3.4.4-3/ltcf-c.sh	2005-06-03 21:03:32.000000000 +0100
@@ -38,17 +38,17 @@
 lt_simple_link_test_code='main(){return(0);}'
 
 ## Linker Characteristics
-case $host_os in
-cygwin* | mingw*)
+#case $host_os in
+#cygwin* | mingw*)
   # FIXME: the MSVC++ port hasn't been tested in a loooong time
   # When not using gcc, we currently assume that we are using
   # Microsoft Visual C++.
-  if test "$with_gcc" != yes; then
-    with_gnu_ld=no
-  fi
-  ;;
-
-esac
+#  if test "$with_gcc" != yes; then
+#    with_gnu_ld=no
+#  fi
+#  ;;
+#
+#esac
 
 ld_shlibs=yes
 if test "$with_gnu_ld" = yes; then
