Index: lang/gcc43/Portfile
===================================================================
--- lang/gcc43/Portfile	(revision 69763)
+++ lang/gcc43/Portfile	(working copy)
@@ -51,9 +51,6 @@
 
 use_bzip2       yes
 
-# gmp and mpfr are not universal
-universal_variant       no
-
 depends_lib     port:gmp port:mpfr port:libiconv
 
 patchfiles      Make-lang.in.diff
@@ -68,10 +65,11 @@
 }
 
 # the generated compiler doesn't accept -arch
-if {[info exists build_arch] && ${os.platform} == "darwin"} {
-    configure.cc_archflags
-    configure.cxx_archflags
-    configure.objc_archflags
+configure.cc_archflags
+configure.cxx_archflags
+configure.objc_archflags
+configure.ld_archflags
+platform darwin {
     configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
 }
 
@@ -87,7 +85,8 @@
         --program-suffix=-mp-${major} \
         --with-gxx-include-dir=${prefix}/include/${name}/c++/ \
         --with-gmp=${prefix} \
-        --with-mpfr=${prefix}
+        --with-mpfr=${prefix} \
+        --disable-multilib
 # do NOT use MacPorts binutils -- they do not work
 configure.env-append    AR_FOR_TARGET=/usr/bin/ar \
             AS_FOR_TARGET=/usr/bin/as \
@@ -117,10 +116,6 @@
     xinstall -m 444 ${filespath}/mp-gcc43 ${destroot}${prefix}/etc/select/gcc/
 }
 
-platform powerpc {
-    configure.args-append --disable-multilib
-}
-
 # Java support does not compile on 10.4/x86
 platform darwin 8 i386 {
 	configure.args-delete   --enable-languages=c,c++,objc,obj-c++,java,fortran
@@ -140,7 +135,20 @@
 #               --with-ar=${prefix}/bin/odar
 #}
 
+platform powerpc {
+    configure.universal_archs ppc ppc64
+}
+platform i386 {
+    configure.universal_archs i386 x86_64
+}
+configure.universal_cflags
+configure.universal_cxxflags
+configure.universal_ldflags
+variant universal {
+    configure.args-delete --disable-multilib
+    configure.args-append --enable-multilib
+}
+
 livecheck.type  regex
 livecheck.url   http://gcc.gnu.org/gcc-4.3/
 livecheck.regex GCC (4\\.3\\.\[0-9\])
-
Index: lang/gcc44/Portfile
===================================================================
--- lang/gcc44/Portfile	(revision 69763)
+++ lang/gcc44/Portfile	(working copy)
@@ -51,9 +51,6 @@
 
 use_bzip2		yes
 
-# gmp and mpfr are not universal
-universal_variant       no
-
 depends_lib		port:gmp port:mpfr port:libiconv
 
 patch.dir       ${workpath}/gcc-${version}
@@ -63,13 +60,11 @@
 worksrcdir		build
 
 # the generated compiler doesn't accept -arch
-if {${os.platform} == "darwin"} {
-    configure.cc_archflags
-    configure.cxx_archflags
-    configure.objc_archflags
-    if {[info exists configure.ld_archflags]} {
-        configure.ld_archflags
-    }
+configure.cc_archflags
+configure.cxx_archflags
+configure.objc_archflags
+configure.ld_archflags
+platform darwin {
     configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
 }
 
@@ -90,7 +85,8 @@
 		--with-gxx-include-dir=${prefix}/include/${name}/c++/ \
 		--with-gmp=${prefix} \
 		--with-mpfr=${prefix} \
-		--enable-stage1-checking
+		--enable-stage1-checking \
+		--disable-multilib
 # do NOT use MacPorts binutils -- they do not work
 configure.env-append    AR_FOR_TARGET=/usr/bin/ar \
 			AS_FOR_TARGET=/usr/bin/as \
@@ -121,10 +117,6 @@
 		${destroot}${prefix}/share/python/classfile-44.py
 }
 
-platform powerpc {
-	configure.args-append --disable-multilib
-}
-
 platform darwin 10 {
 	configure.args-append --enable-fully-dynamic-string
 }
@@ -142,7 +134,20 @@
 				--with-ar=${prefix}/bin/odar
 }
 
+platform powerpc {
+    configure.universal_archs ppc ppc64
+}
+platform i386 {
+    configure.universal_archs i386 x86_64
+}
+configure.universal_cflags
+configure.universal_cxxflags
+configure.universal_ldflags
+variant universal {
+    configure.args-delete --disable-multilib
+    configure.args-append --enable-multilib
+}
+
 livecheck.type	regex
 livecheck.url	http://gcc.gnu.org/gcc-4.4/
 livecheck.regex	GCC (4\\.4\\.\[0-9\])
-
Index: lang/gcc45/Portfile
===================================================================
--- lang/gcc45/Portfile	(revision 69763)
+++ lang/gcc45/Portfile	(working copy)
@@ -61,9 +61,6 @@
 
 use_bzip2		yes
 
-# gmp and mpfr are not universal
-universal_variant       no
-
 depends_lib		port:gmp port:mpfr port:libiconv port:libmpc
 
 patchfiles		tls_configure_fix.diff
@@ -74,10 +71,11 @@
 worksrcdir		build
 
 # the generated compiler doesn't accept -arch
-if {[info exists build_arch] && ${os.platform} == "darwin"} {
-    configure.cc_archflags
-    configure.cxx_archflags
-    configure.objc_archflags
+configure.cc_archflags
+configure.cxx_archflags
+configure.objc_archflags
+configure.ld_archflags
+platform darwin {
     configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
 }
 
@@ -104,7 +102,8 @@
 		--with-gmp=${prefix} \
 		--with-mpfr=${prefix} \
 		--with-mpc=${prefix} \
-		--enable-stage1-checking
+		--enable-stage1-checking \
+		--disable-multilib
 # do NOT use MacPorts binutils -- they do not work
 configure.env-append    AR_FOR_TARGET=/usr/bin/ar \
 			AS_FOR_TARGET=/usr/bin/as \
@@ -135,15 +134,24 @@
 		${destroot}${prefix}/share/python/classfile-45.py
 }
 
-platform powerpc {
-	configure.args-append --disable-multilib
-}
-
 platform darwin 10 {
 	configure.args-append --enable-fully-dynamic-string
 }
 
+platform powerpc {
+    configure.universal_archs ppc ppc64
+}
+platform i386 {
+    configure.universal_archs i386 x86_64
+}
+configure.universal_cflags
+configure.universal_cxxflags
+configure.universal_ldflags
+variant universal {
+    configure.args-delete --disable-multilib
+    configure.args-append --enable-multilib
+}
+
 livecheck.type  regex
 livecheck.url   http://gcc.gnu.org/gcc-4.5/
 livecheck.regex GCC (4\\.5\\.\[0-9\])
-
Index: lang/gcc46/Portfile
===================================================================
--- lang/gcc46/Portfile	(revision 69763)
+++ lang/gcc46/Portfile	(working copy)
@@ -59,9 +59,6 @@
 
 use_bzip2		yes
 
-# gmp and mpfr are not universal
-universal_variant       no
-
 depends_lib		port:gmp port:mpfr port:libiconv port:libmpc
 
 patchfiles		patch-160729.diff
@@ -73,10 +70,11 @@
 worksrcdir		build
 
 # the generated compiler doesn't accept -arch
-if {[info exists build_arch] && ${os.platform} == "darwin"} {
-    configure.cc_archflags
-    configure.cxx_archflags
-    configure.objc_archflags
+configure.cc_archflags
+configure.cxx_archflags
+configure.objc_archflags
+configure.ld_archflags
+platform darwin {
     configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
 }
 
@@ -103,7 +101,8 @@
 		--with-gmp=${prefix} \
 		--with-mpfr=${prefix} \
 		--with-mpc=${prefix} \
-		--enable-stage1-checking
+		--enable-stage1-checking \
+		--disable-multilib
 # do NOT use MacPorts binutils -- they do not work
 configure.env-append    AR_FOR_TARGET=/usr/bin/ar \
 			AS_FOR_TARGET=/usr/bin/as \
@@ -130,10 +129,6 @@
 	xinstall -m 444 ${filespath}/mp-gcc46 ${destroot}${prefix}/etc/select/gcc/
 }
 
-platform powerpc {
-	configure.args-append --disable-multilib
-}
-
 platform darwin 10 {
 	configure.args-append --enable-fully-dynamic-string
 }
@@ -158,7 +153,20 @@
 	}
 }
 
+platform powerpc {
+    configure.universal_archs ppc ppc64
+}
+platform i386 {
+    configure.universal_archs i386 x86_64
+}
+configure.universal_cflags
+configure.universal_cxxflags
+configure.universal_ldflags
+variant universal {
+    configure.args-delete --disable-multilib
+    configure.args-append --enable-multilib
+}
+
 livecheck.type	regex
 livecheck.url	ftp://gcc.gnu.org/pub/gcc/snapshots/
 livecheck.regex	LATEST-4.6 -> (4.6-\[0-9\]+)
-
