--- Portfile.orig	2009-09-12 22:19:45.000000000 -0400
+++ Portfile.optimized	2009-09-13 00:45:30.000000000 -0400
@@ -5,6 +5,7 @@
 name			gcc44
 epoch			1
 version			4.4.1
+revision                1
 platforms		darwin
 categories		lang
 maintainers		mww
@@ -42,24 +43,19 @@
 
 set major		4.4
 
+patchfiles              gcc44-config.guess.diff \
+                        gcc44-PR41180.diff \
+                        gcc44-disable-libjava.diff
 worksrcdir		build
-
-# the generated compiler doesn't accept -arch
-if {[info exists build_arch] && ${os.platform} == "darwin"} {
-    if {(${os.arch} == "i386" && $build_arch == "i386") || (${os.arch} == "powerpc" && $build_arch == "ppc")} {
-        configure.env-append CFLAGS_FOR_TARGET="-m32 ${configure.cflags}"
-    } elseif {(${os.arch} == "i386" && $build_arch == "x86_64") || (${os.arch} == "powerpc" && $build_arch == "ppc64")} {
-        configure.env-append CFLAGS_FOR_TARGET="-m64 ${configure.cflags}"
-    } else {
-        pre-fetch {
-            return -code error "Cannot build $name for $build_arch"
-        }
-    }
-    configure.env-append CFLAGS_FOR_BUILD="${configure.cc_archflags} ${configure.cflags}"
-    configure.cc_archflags
-    configure.cxx_archflags
-    configure.objc_archflags
+pre-patch {
+        file mkdir ${worksrcpath}
 }
+patch.dir               ${workpath}/gcc-${version}
+
+configure.env-append CFLAGS_FOR_BUILD="${configure.cflags}"
+configure.cc_archflags
+configure.cxx_archflags
+configure.objc_archflags
 
 pre-configure {
 	file mkdir ${worksrcpath}
@@ -77,7 +73,13 @@
 		--program-suffix=-mp-${major} \
 		--with-gxx-include-dir=${prefix}/include/${name}/c++/ \
 		--with-gmp=${prefix} \
-		--with-mpfr=${prefix}
+		--with-mpfr=${prefix} \
+                --disable-libjava-multilib
+
+if {[info exists build_arch] && ${os.platform} == "darwin" && ${os.arch} == "i386" && $build_arch == "i386" } {
+        configure.args-append --with-arch=nocona --with-tune=generic --build=i686-apple-darwin${os.major} --host=i686-apple-darwin${os.major} --target=i686-apple-darwin${os.major}
+    }
+
 # do NOT use MacPorts binutils -- they do not work
 configure.env-append    AR_FOR_TARGET=/usr/bin/ar \
 			AS_FOR_TARGET=/usr/bin/as \
@@ -104,16 +106,6 @@
 	xinstall -m 444 ${filespath}/mp-gcc44 ${destroot}${prefix}/etc/select/gcc/
 }
 
-#platform darwin 7 {
-#	configure.cflags-append	-force_cpusubtype_ALL
-#	confgiure.env 	BOOT_CFLAGS="-g -O2 -force_cpusubtype_ALL"
-#	build.args-append	XCFLAGS=-force_cpusubtype_ALL
-#}
-
-platform powerpc {
-	configure.args-append --disable-multilib
-}
-
 # odcctools currently do not compile for x64 - move to variant for the time being
 variant odcctools \
 	description "Use the odcctools instead of the system provided ones - does not work for x64 currently!" {

