Index: dragonegg-3.0/Portfile
===================================================================
--- dragonegg-3.0/Portfile	(revision 109247)
+++ dragonegg-3.0/Portfile	(working copy)
@@ -9,12 +9,12 @@
 name                    dragonegg-${llvm_version}
 
 subport                 ${name}-gcc-4.5 {
-    revision            1
+    revision            2
     set gcc_version     4.5
     set gcc_version_no_dot 45
 }
 subport                 ${name}-gcc-4.6 {
-    revision            1
+    revision            2
     set gcc_version     4.6
     set gcc_version_no_dot 46
 }
Index: dragonegg-3.1/Portfile
===================================================================
--- dragonegg-3.1/Portfile	(revision 109247)
+++ dragonegg-3.1/Portfile	(working copy)
@@ -9,17 +9,17 @@
 name                    dragonegg-${llvm_version}
 
 subport                 ${name}-gcc-4.5 {
-    revision            1
+    revision            2
     set gcc_version     4.5
     set gcc_version_no_dot 45
 }
 subport                 ${name}-gcc-4.6 {
-    revision            1
+    revision            2
     set gcc_version     4.6
     set gcc_version_no_dot 46
 }
 subport                 ${name}-gcc-4.7 {
-    revision            1
+    revision            2
     set gcc_version     4.7
     set gcc_version_no_dot 47
 }
Index: dragonegg-3.2/Portfile
===================================================================
--- dragonegg-3.2/Portfile	(revision 109247)
+++ dragonegg-3.2/Portfile	(working copy)
@@ -9,17 +9,17 @@
 name                    dragonegg-${llvm_version}
 
 subport                 ${name}-gcc-4.5 {
-    revision            1
+    revision            2
     set gcc_version     4.5
     set gcc_version_no_dot 45
 }
 subport                 ${name}-gcc-4.6 {
-    revision            1
+    revision            2
     set gcc_version     4.6
     set gcc_version_no_dot 46
 }
 subport                 ${name}-gcc-4.7 {
-    revision            1
+    revision            2
     set gcc_version     4.7
     set gcc_version_no_dot 47
 }
Index: dragonegg-3.3/Portfile
===================================================================
--- dragonegg-3.3/Portfile	(revision 109247)
+++ dragonegg-3.3/Portfile	(working copy)
@@ -9,22 +9,22 @@
 name                    dragonegg-${llvm_version}
 
 subport                 ${name}-gcc-4.5 {
-    revision            2
+    revision            3
     set gcc_version     4.5
     set gcc_version_no_dot 45
 }
 subport                 ${name}-gcc-4.6 {
-    revision            2
+    revision            3
     set gcc_version     4.6
     set gcc_version_no_dot 46
 }
 subport                 ${name}-gcc-4.7 {
-    revision            2
+    revision            3
     set gcc_version     4.7
     set gcc_version_no_dot 47
 }
 subport                 ${name}-gcc-4.8 {
-    revision            2
+    revision            3
     set gcc_version     4.8
     set gcc_version_no_dot 48
 }
Index: dragonegg-3.4/Portfile
===================================================================
--- dragonegg-3.4/Portfile	(revision 109247)
+++ dragonegg-3.4/Portfile	(working copy)
@@ -9,27 +9,27 @@
 name                    dragonegg-${llvm_version}
 
 subport                 ${name}-gcc-4.5 {
-    revision            3
+    revision            4
     set gcc_version     4.5
     set gcc_version_no_dot 45
 }
 subport                 ${name}-gcc-4.6 {
-    revision            3
+    revision            4
     set gcc_version     4.6
     set gcc_version_no_dot 46
 }
 subport                 ${name}-gcc-4.7 {
-    revision            3
+    revision            4
     set gcc_version     4.7
     set gcc_version_no_dot 47
 }
 subport                 ${name}-gcc-4.8 {
-    revision            3
+    revision            4
     set gcc_version     4.8
     set gcc_version_no_dot 48
 }
 subport                 ${name}-gcc-4.9 {
-    revision            2
+    revision            3
     set gcc_version     4.9
     set gcc_version_no_dot 49
 }
Index: gcc42/Portfile
===================================================================
--- gcc42/Portfile	(revision 109247)
+++ gcc42/Portfile	(working copy)
@@ -5,7 +5,7 @@
 
 name			gcc42
 version			4.2.4
-revision		7
+revision		8
 platforms		darwin
 categories		lang
 maintainers		mww openmaintainer
@@ -41,7 +41,7 @@
 universal_variant	no
 
 depends_lib		port:gmp port:mpfr port:libiconv
-depends_run		port:gcc_select port:ld64 port:cctools path:lib/libstdc\\\\+\\\\+.6.dylib:libstdcxx
+depends_run		port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc
 
 depends_skip_archcheck-append gcc_select ld64 cctools
 license_noconflict  gmp mpfr
@@ -117,26 +117,19 @@
 	file delete -force ${destroot}${prefix}/share/man/man7 \
 		${destroot}${prefix}/share/info
 
-    if {[variant_isset universal]} {
-        foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
-            if {[file exists ${archdir}/libstdc++.6.dylib]} {
-                eval delete [glob ${archdir}/libstdc++*]
+    foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libstdc++.6.dylib libgomp.1.dylib libssp.0.dylib} {
+        delete ${destroot}${prefix}/lib/${name}/${dylib}
+        ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
 
-		# This symlink is provided as a transition aide and will be removed
-		# with a future revision of this port.
-                ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib
+        if {[variant_isset universal]} {
+            foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
+                if {[file exists ${archdir}/${dylib}]} {
+                    delete ${archdir}/${dylib}
+                    ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
+                }
             }
         }
     }
-
-    # http://trac.macports.org/ticket/35770
-    eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]
-
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib
-
-    # This symlink is provided as a transition aide and will be removed
-    # with a future revision of this port.
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib
 }
 
 post-destroot {
Index: gcc43/Portfile
===================================================================
--- gcc43/Portfile	(revision 109247)
+++ gcc43/Portfile	(working copy)
@@ -6,7 +6,7 @@
 
 name                gcc43
 version             4.3.6
-revision            7
+revision            8
 platforms           darwin
 categories          lang
 maintainers         mww openmaintainer
@@ -55,7 +55,7 @@
                     rmd160  cde38f66b4b952f52938dc50d7606a0e1ccc7d2f
 
 depends_lib         port:gmp port:mpfr port:libiconv
-depends_run         port:gcc_select port:ld64 port:cctools path:lib/libstdc\\\\+\\\\+.6.dylib:libstdcxx
+depends_run         port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc
 
 depends_skip_archcheck-append gcc_select ld64 cctools
 license_noconflict  gmp mpfr
@@ -139,26 +139,19 @@
         file copy ${ffitarget.h} ${destroot}${prefix}/include/${name}/
     }
 
-    if {[variant_isset universal]} {
-        foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
-            if {[file exists ${archdir}/libstdc++.6.dylib]} {
-                eval delete [glob ${archdir}/libstdc++*]
+    foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libstdc++.6.dylib libgomp.1.dylib libssp.0.dylib} {
+        delete ${destroot}${prefix}/lib/${name}/${dylib}
+        ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
 
-		# This symlink is provided as a transition aide and will be removed
-		# with a future revision of this port.
-                ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib
+        if {[variant_isset universal]} {
+            foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
+                if {[file exists ${archdir}/${dylib}]} {
+                    delete ${archdir}/${dylib}
+                    ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
+                }
             }
         }
     }
-
-    # http://trac.macports.org/ticket/35770
-    eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]
-
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib
-
-    # This symlink is provided as a transition aide and will be removed
-    # with a future revision of this port.
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib
 }
 
 select.group        gcc
Index: gcc44/Portfile
===================================================================
--- gcc44/Portfile	(revision 109247)
+++ gcc44/Portfile	(working copy)
@@ -7,7 +7,7 @@
 name                gcc44
 epoch               1
 version             4.4.7
-revision            6
+revision            7
 platforms           darwin
 categories          lang
 maintainers         mww openmaintainer
@@ -56,7 +56,7 @@
                     rmd160  660d8e2f8162458e463de6195e58391ee711ed59
 
 depends_lib         port:gmp port:mpfr port:libiconv
-depends_run         port:gcc_select port:ld64 port:cctools path:lib/libstdc\\\\+\\\\+.6.dylib:libstdcxx
+depends_run         port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc
 
 depends_skip_archcheck-append gcc_select ld64 cctools
 license_noconflict  gmp mpfr
@@ -144,26 +144,19 @@
     file rename ${destroot}${prefix}/share/python/classfile.py \
                 ${destroot}${prefix}/share/python/classfile-44.py
 
-    if {[variant_isset universal]} {
-        foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
-            if {[file exists ${archdir}/libstdc++.6.dylib]} {
-                eval delete [glob ${archdir}/libstdc++*]
+    foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libstdc++.6.dylib libgomp.1.dylib libssp.0.dylib} {
+        delete ${destroot}${prefix}/lib/${name}/${dylib}
+        ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
 
-		# This symlink is provided as a transition aide and will be removed
-		# with a future revision of this port.
-                ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib
+        if {[variant_isset universal]} {
+            foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
+                if {[file exists ${archdir}/${dylib}]} {
+                    delete ${archdir}/${dylib}
+                    ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
+                }
             }
         }
     }
-
-    # http://trac.macports.org/ticket/35770
-    eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]
-
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib
-
-    # This symlink is provided as a transition aide and will be removed
-    # with a future revision of this port.
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib
 }
 
 select.group        gcc
Index: gcc45/Portfile
===================================================================
--- gcc45/Portfile	(revision 109247)
+++ gcc45/Portfile	(working copy)
@@ -8,7 +8,7 @@
 name                gcc45
 epoch               1
 version             4.5.4
-revision            7
+revision            8
 platforms           darwin
 categories          lang
 maintainers         mww openmaintainer
@@ -62,7 +62,7 @@
                     sha256  98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781
 
 depends_lib         port:gmp port:mpfr port:libiconv port:libmpc port:ppl
-depends_run         port:gcc_select port:ld64 port:cctools path:lib/libstdc\\\\+\\\\+.6.dylib:libstdcxx
+depends_run         port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc
 
 depends_skip_archcheck-append gcc_select ld64 cctools
 license_noconflict  gmp mpfr ppl libmpc
@@ -156,26 +156,19 @@
         eval file copy ${worksrcpath}/../gcc-${version}/gcc/config/darwin-sections.def [glob ${destroot}${prefix}/lib/${name}/gcc/*/${version}/plugin/include/config]
     }
 
-    if {[variant_isset universal]} {
-        foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
-            if {[file exists ${archdir}/libstdc++.6.dylib]} {
-                eval delete [glob ${archdir}/libstdc++*]
+    foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libstdc++.6.dylib libgomp.1.dylib libssp.0.dylib} {
+        delete ${destroot}${prefix}/lib/${name}/${dylib}
+        ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
 
-		# This symlink is provided as a transition aide and will be removed
-		# with a future revision of this port.
-                ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib
+        if {[variant_isset universal]} {
+            foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
+                if {[file exists ${archdir}/${dylib}]} {
+                    delete ${archdir}/${dylib}
+                    ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
+                }
             }
         }
     }
-
-    # http://trac.macports.org/ticket/35770
-    eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]
-
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib
-
-    # This symlink is provided as a transition aide and will be removed
-    # with a future revision of this port.
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib
 }
 
 select.group        gcc
Index: gcc46/Portfile
===================================================================
--- gcc46/Portfile	(revision 109247)
+++ gcc46/Portfile	(working copy)
@@ -9,7 +9,7 @@
 
 # Whenever this port is bumped for version/revision, please revbump dragonegg-3.[012] and dragonegg-3.[34]-gcc-4.6
 version             4.6.4
-revision            1
+revision            2
 platforms           darwin
 categories          lang
 maintainers         mww openmaintainer
@@ -49,7 +49,7 @@
                     sha256  98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781
 
 depends_lib         port:gmp port:mpfr port:libiconv port:libmpc port:ppl port:cloog
-depends_run         port:gcc_select port:ld64 port:cctools path:lib/libstdc\\\\+\\\\+.6.dylib:libstdcxx
+depends_run         port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc
 
 depends_skip_archcheck-append gcc_select ld64 cctools
 license_noconflict  gmp mpfr ppl libmpc
@@ -135,26 +135,19 @@
         file copy ${ffitarget.h} ${destroot}${prefix}/include/${name}/
     }
 
-    if {[variant_isset universal]} {
-        foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
-            if {[file exists ${archdir}/libstdc++.6.dylib]} {
-                eval delete [glob ${archdir}/libstdc++*]
+    foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libquadmath.0.dylib libstdc++.6.dylib libgomp.1.dylib libssp.0.dylib} {
+        delete ${destroot}${prefix}/lib/${name}/${dylib}
+        ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
 
-		# This symlink is provided as a transition aide and will be removed
-		# with a future revision of this port.
-                ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib
+        if {[variant_isset universal]} {
+            foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
+                if {[file exists ${archdir}/${dylib}]} {
+                    delete ${archdir}/${dylib}
+                    ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
+                }
             }
         }
     }
-
-    # http://trac.macports.org/ticket/35770
-    eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]
-
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib
-
-    # This symlink is provided as a transition aide and will be removed
-    # with a future revision of this port.
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib
 }
 
 select.group        gcc
Index: gcc47/Portfile
===================================================================
--- gcc47/Portfile	(revision 109247)
+++ gcc47/Portfile	(working copy)
@@ -10,7 +10,7 @@
 
 # Whenever this port is bumped for version/revision, please revbump dragonegg-3.[34]-gcc-4.7
 version             4.7.3
-revision            1
+revision            2
 platforms           darwin
 categories          lang
 maintainers         mww openmaintainer
@@ -49,7 +49,7 @@
                     sha256  98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781
 
 depends_lib         port:gmp port:mpfr port:libiconv port:libmpc port:ppl port:cloog
-depends_run         port:gcc_select port:ld64 port:cctools path:lib/libstdc\\\\+\\\\+.6.dylib:libstdcxx
+depends_run         port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc
 
 depends_skip_archcheck-append gcc_select ld64 cctools
 license_noconflict  gmp mpfr ppl libmpc
@@ -134,26 +134,19 @@
         file copy ${ffitarget.h} ${destroot}${prefix}/include/${name}/
     }
 
-    if {[variant_isset universal]} {
-        foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
-            if {[file exists ${archdir}/libstdc++.6.dylib]} {
-                eval delete [glob ${archdir}/libstdc++*]
+    foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib} {
+        delete ${destroot}${prefix}/lib/${name}/${dylib}
+        ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
 
-		# This symlink is provided as a transition aide and will be removed
-		# with a future revision of this port.
-                ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib
+        if {[variant_isset universal]} {
+            foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
+                if {[file exists ${archdir}/${dylib}]} {
+                    delete ${archdir}/${dylib}
+                    ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
+                }
             }
         }
     }
-
-    # http://trac.macports.org/ticket/35770
-    eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]
-
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib
-
-    # This symlink is provided as a transition aide and will be removed
-    # with a future revision of this port.
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib
 }
 
 select.group        gcc
Index: gcc48/Portfile
===================================================================
--- gcc48/Portfile	(revision 109247)
+++ gcc48/Portfile	(working copy)
@@ -5,12 +5,12 @@
 PortGroup compiler_blacklist_versions 1.0
 
 name                gcc48
-subport             libstdcxx {}
+subport             libgcc {}
 
 # Whenever this port is bumped for version/revision, please revbump dragonegg-3.[34]-gcc-4.8
 epoch               2
 version             4.8.1
-revision            1
+revision            2
 platforms           darwin
 categories          lang
 maintainers         mww openmaintainer
@@ -35,7 +35,7 @@
 use_bzip2           yes
 
 depends_lib         port:gmp port:mpfr port:libiconv port:libmpc port:ppl port:cloog
-depends_run         port:gcc_select port:ld64 port:cctools path:lib/libstdc\\\\+\\\\+.6.dylib:libstdcxx
+depends_run         port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc
 
 depends_skip_archcheck-append gcc_select ld64 cctools
 license_noconflict  gmp mpfr ppl libmpc
@@ -107,51 +107,61 @@
 
 destroot.target     install install-info-host
 
-if {${subport} == "libstdcxx"} {
-    conflicts       libstdcxx-devel
+if {${subport} == "libgcc"} {
+    conflicts       libgcc-devel
 
-    patchfiles-append  force-static-gcc.patch
+    # While there can be multiple versions of these runtimes in a single
+    # process, it is not possible to pass objects between different versions,
+    # so we simplify this by having the libgcc port provide the newest version
+    # of these runtimes for all versions of gcc to use.
+    #
+    # If there is a binary incompatible change to the runtime in a future
+    # version of gcc, then the latest version of gcc to provide a given ABI
+    # version should continue to provide a subport for that and older gcc
+    # versions.
 
-    depends_run-delete path:lib/libstdc\\\\+\\\\+.6.dylib:libstdcxx
+    depends_run-delete path:lib/libgcc/libgcc_s.1.dylib:libgcc
 
     configure.args-delete --libdir=${prefix}/lib/${name}
+    configure.args-append --libdir=${prefix}/lib/libgcc
 
     configure.args-delete --enable-languages=c,c++,objc,obj-c++,lto,fortran,java
-    configure.args-append --enable-languages=c++
+    configure.args-append --enable-languages=c,c++,objc,obj-c++,lto,fortran
 
+    # TODO: Possibly disable bootstrap with appropriate configure flags.
+    #       the problem is that libstdc++'s configure script tests for tls support
+    #       using the running compiler (not gcc for which libstdc++ is being built).
+    #       Thus when we build with clang, we get a mismatch
     # http://trac.macports.org/ticket/36116
-    compiler.blacklist-append {clang < 425}
+    #compiler.blacklist-append {clang < 425}
+    #configure.args-append --disable-bootstrap
+    #build.target        all
 
-    configure.args-append --disable-bootstrap
-    build.target        all
-
-    destroot.target     install-target-libstdc++-v3
-
     post-destroot {
-        eval file delete [glob ${destroot}${prefix}/lib/*{a,py}]
-        eval file delete [glob ${destroot}${prefix}/lib/libgcc*]
-        file delete -force ${destroot}${prefix}/lib/gcc
-        file delete -force ${destroot}${prefix}/share/gcc-${major}
-        file delete -force ${destroot}${prefix}/include/${name}
+        file mkdir ${destroot}${prefix}/lib/libgcc.merged
 
-        # Don't install the linktime symlink.  The compilers will place this
-        # in their libdir, and we don't want to break other toolchains by having
-        # them link against this libstdc++ (at least not until it is built on
-        # top of libc++abi).
-        file delete ${destroot}${prefix}/lib/libstdc++.dylib
-
-        # For compatibility.  Delete this eventually.
-        system "touch ${destroot}${prefix}/lib/.libstdcxx"
-
-        if {[variant_isset universal]} {
-            foreach archdir [glob ${destroot}${prefix}/lib/*/] {
-                if {[file exists ${archdir}/libstdc++.6.dylib]} {
-                    system "install_name_tool -id ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib"
-                    system "lipo -create -output ${destroot}${prefix}/lib/libstdc++.6.dylib~ ${destroot}${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib && mv ${destroot}${prefix}/lib/libstdc++.6.dylib~ ${destroot}${prefix}/lib/libstdc++.6.dylib"
+        foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.0.dylib libatomic.1.dylib} {
+            move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged
+            if {[variant_isset universal]} {
+                foreach archdir [glob ${destroot}${prefix}/lib/libgcc/*/] {
+                    if {[file exists ${archdir}/${dylib}]} {
+                        system "install_name_tool -id ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}"
+                        system "lipo -create -output ${destroot}${prefix}/lib/libgcc.merged/${dylib}~ ${destroot}${prefix}/lib/libgcc.merged/${dylib} ${archdir}/${dylib} && mv ${destroot}${prefix}/lib/libgcc.merged/${dylib}~ ${destroot}${prefix}/lib/libgcc.merged/${dylib}"
+                    }
                 }
-                file delete -force ${archdir}
             }
         }
+
+        file delete -force ${destroot}${prefix}/bin              
+        file delete -force ${destroot}${prefix}/share
+        file delete -force ${destroot}${prefix}/include
+        file delete -force ${destroot}${prefix}/lib/libgcc
+        file delete -force ${destroot}${prefix}/libexec
+
+        move ${destroot}${prefix}/lib/libgcc.merged ${destroot}${prefix}/lib/libgcc
+
+        # For binary compatibility with binaries that linked against the old libstdcxx port
+        ln -s libgcc/libstdc++.6.dylib ${destroot}${prefix}/lib/libstdc++.6.dylib
     }
 } else {
 
@@ -165,26 +175,19 @@
         file copy ${ffitarget.h} ${destroot}${prefix}/include/${name}/
     }
 
-    if {[variant_isset universal]} {
-        foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
-            if {[file exists ${archdir}/libstdc++.6.dylib]} {
-                eval delete [glob ${archdir}/libstdc++*]
+    foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.0.dylib libatomic.1.dylib} {
+        delete ${destroot}${prefix}/lib/${name}/${dylib}
+        ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
 
-		# This symlink is provided as a transition aide and will be removed
-		# with a future revision of this port.
-                ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib
+        if {[variant_isset universal]} {
+            foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
+                if {[file exists ${archdir}/${dylib}]} {
+                    delete ${archdir}/${dylib}
+                    ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
+                }
             }
         }
     }
-
-    # http://trac.macports.org/ticket/35770
-    eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]
-
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib
-
-    # This symlink is provided as a transition aide and will be removed
-    # with a future revision of this port.
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib
 }
 
 select.group        gcc
Index: gcc48/files/force-static-gcc.patch
===================================================================
--- gcc48/files/force-static-gcc.patch	(revision 109247)
+++ gcc48/files/force-static-gcc.patch	(working copy)
@@ -1,21 +0,0 @@
---- gcc/config/darwin.h.orig	2012-09-13 20:20:33.000000000 -0700
-+++ gcc/config/darwin.h	2012-09-13 20:23:03.000000000 -0700
-@@ -325,17 +325,6 @@ extern GTY(()) int darwin_ms_struct;
- #undef REAL_LIBGCC_SPEC
- #define REAL_LIBGCC_SPEC						   \
--   "%{static-libgcc|static: -lgcc_eh -lgcc;				   \
--      shared-libgcc|fexceptions|fgnu-runtime:				   \
--       %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4)	   \
--       %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
--       %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)	   \
--       %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
--       -lgcc ;								   \
--      :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \
--       %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
--       %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)	   \
--       %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
--       -lgcc }"
-+   "-lgcc_eh -lgcc"
- 
- /* We specify crt0.o as -lcrt0.o so that ld will search the library path.
- 
Index: gcc49/Portfile
===================================================================
--- gcc49/Portfile	(revision 109247)
+++ gcc49/Portfile	(working copy)
@@ -5,11 +5,11 @@
 PortGroup compiler_blacklist_versions 1.0
 
 name                gcc49
-subport             libstdcxx-devel {}
+subport             libgcc-devel {}
 
 # Whenever this port is bumped for version/revision, please revbump dragonegg-3.4-gcc-4.9
 version             4.9-20130804
-revision            1
+revision            2
 platforms           darwin
 categories          lang
 maintainers         mww openmaintainer
@@ -36,7 +36,7 @@
 use_bzip2           yes
 
 depends_lib         port:gmp port:mpfr port:libiconv port:libmpc port:ppl port:cloog
-depends_run         port:gcc_select port:ld64 port:cctools port:libstdcxx-devel
+depends_run         port:gcc_select port:ld64 port:cctools port:libgcc-devel
 
 depends_skip_archcheck-append gcc_select ld64 cctools
 license_noconflict  gmp mpfr ppl libmpc
@@ -108,51 +108,61 @@
 
 destroot.target     install install-info-host
 
-if {${subport} == "libstdcxx-devel"} {
-    conflicts       libstdcxx
+if {${subport} == "libgcc"} {
+    conflicts       libgcc-devel
 
-    patchfiles-append  force-static-gcc.patch
+    # While there can be multiple versions of these runtimes in a single
+    # process, it is not possible to pass objects between different versions,
+    # so we simplify this by having the libgcc port provide the newest version
+    # of these runtimes for all versions of gcc to use.
+    #
+    # If there is a binary incompatible change to the runtime in a future
+    # version of gcc, then the latest version of gcc to provide a given ABI
+    # version should continue to provide a subport for that and older gcc
+    # versions.
 
-    depends_run-delete port:${subport}
+    depends_run-delete port:libgcc-devel
 
     configure.args-delete --libdir=${prefix}/lib/${name}
+    configure.args-append --libdir=${prefix}/lib/libgcc
 
     configure.args-delete --enable-languages=c,c++,objc,obj-c++,lto,fortran,java
-    configure.args-append --enable-languages=c++
+    configure.args-append --enable-languages=c,c++,objc,obj-c++,lto,fortran
 
+    # TODO: Possibly disable bootstrap with appropriate configure flags.
+    #       the problem is that libstdc++'s configure script tests for tls support
+    #       using the running compiler (not gcc for which libstdc++ is being built).
+    #       Thus when we build with clang, we get a mismatch
     # http://trac.macports.org/ticket/36116
-    compiler.blacklist-append {clang < 425}
+    #compiler.blacklist-append {clang < 425}
+    #configure.args-append --disable-bootstrap
+    #build.target        all
 
-    configure.args-append --disable-bootstrap
-    build.target        all
-
-    destroot.target     install-target-libstdc++-v3
-
     post-destroot {
-        eval file delete [glob ${destroot}${prefix}/lib/*{a,py}]
-        eval file delete [glob ${destroot}${prefix}/lib/libgcc*]
-        file delete -force ${destroot}${prefix}/lib/gcc
-        file delete -force ${destroot}${prefix}/share/gcc-${major}
-        file delete -force ${destroot}${prefix}/include/${name}
+        file mkdir ${destroot}${prefix}/lib/libgcc.merged
 
-        # Don't install the linktime symlink.  The compilers will place this
-        # in their libdir, and we don't want to break other toolchains by having
-        # them link against this libstdc++ (at least not until it is built on
-        # top of libc++abi).
-        file delete ${destroot}${prefix}/lib/libstdc++.dylib
-
-        # For compatibility.  Delete this eventually.
-        system "touch ${destroot}${prefix}/lib/.libstdcxx"
-
-        if {[variant_isset universal]} {
-            foreach archdir [glob ${destroot}${prefix}/lib/*/] {
-                if {[file exists ${archdir}/libstdc++.6.dylib]} {
-                    system "install_name_tool -id ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib"
-                    system "lipo -create -output ${destroot}${prefix}/lib/libstdc++.6.dylib~ ${destroot}${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib && mv ${destroot}${prefix}/lib/libstdc++.6.dylib~ ${destroot}${prefix}/lib/libstdc++.6.dylib"
+        foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.0.dylib libatomic.1.dylib} {
+            move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged
+            if {[variant_isset universal]} {
+                foreach archdir [glob ${destroot}${prefix}/lib/libgcc/*/] {
+                    if {[file exists ${archdir}/${dylib}]} {
+                        system "install_name_tool -id ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}"
+                        system "lipo -create -output ${destroot}${prefix}/lib/libgcc.merged/${dylib}~ ${destroot}${prefix}/lib/libgcc.merged/${dylib} ${archdir}/${dylib} && mv ${destroot}${prefix}/lib/libgcc.merged/${dylib}~ ${destroot}${prefix}/lib/libgcc.merged/${dylib}"
+                    }
                 }
-                file delete -force ${archdir}
             }
         }
+
+        file delete -force ${destroot}${prefix}/bin              
+        file delete -force ${destroot}${prefix}/share
+        file delete -force ${destroot}${prefix}/include
+        file delete -force ${destroot}${prefix}/lib/libgcc
+        file delete -force ${destroot}${prefix}/libexec
+
+        move ${destroot}${prefix}/lib/libgcc.merged ${destroot}${prefix}/lib/libgcc
+
+        # For binary compatibility with binaries that linked against the old libstdcxx port
+        ln -s libgcc/libstdc++.6.dylib ${destroot}${prefix}/lib/libstdc++.6.dylib
     }
 } else {
 
@@ -166,26 +176,19 @@
         file copy ${ffitarget.h} ${destroot}${prefix}/include/${name}/
     }
 
-    if {[variant_isset universal]} {
-        foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
-            if {[file exists ${archdir}/libstdc++.6.dylib]} {
-                eval delete [glob ${archdir}/libstdc++*]
+    foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.0.dylib libatomic.1.dylib} {
+        delete ${destroot}${prefix}/lib/${name}/${dylib}
+        ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
 
-		# This symlink is provided as a transition aide and will be removed
-		# with a future revision of this port.
-                ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib
+        if {[variant_isset universal]} {
+            foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
+                if {[file exists ${archdir}/${dylib}]} {
+                    delete ${archdir}/${dylib}
+                    ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
+                }
             }
         }
     }
-
-    # http://trac.macports.org/ticket/35770
-    eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]
-
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib
-
-    # This symlink is provided as a transition aide and will be removed
-    # with a future revision of this port.
-    ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib
 }
 
 select.group        gcc
Index: gcc49/files/force-static-gcc.patch
===================================================================
--- gcc49/files/force-static-gcc.patch	(revision 109247)
+++ gcc49/files/force-static-gcc.patch	(working copy)
@@ -1,21 +0,0 @@
---- gcc/config/darwin.h.orig	2012-09-13 20:20:33.000000000 -0700
-+++ gcc/config/darwin.h	2012-09-13 20:23:03.000000000 -0700
-@@ -325,17 +325,6 @@ extern GTY(()) int darwin_ms_struct;
- #undef REAL_LIBGCC_SPEC
- #define REAL_LIBGCC_SPEC						   \
--   "%{static-libgcc|static: -lgcc_eh -lgcc;				   \
--      shared-libgcc|fexceptions|fgnu-runtime:				   \
--       %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4)	   \
--       %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
--       %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)	   \
--       %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
--       -lgcc ;								   \
--      :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \
--       %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
--       %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)	   \
--       %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
--       -lgcc }"
-+   "-lgcc_eh -lgcc"
- 
- /* We specify crt0.o as -lcrt0.o so that ld will search the library path.
- 
Index: libstdcxx/Portfile
===================================================================
--- libstdcxx/Portfile	(revision 0)
+++ libstdcxx/Portfile	(working copy)
@@ -0,0 +1,17 @@
+# $Id$
+
+PortSystem  1.0
+
+name        libstdcxx
+version     4.8.1
+epoch       20130810
+categories  lang
+replaced_by libgcc
+
+subport libstdcxx-devel {
+    version 4.9
+    replaced_by libgcc-devel
+}
+
+PortGroup   obsolete 1.0
+

Property changes on: libstdcxx/Portfile
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
