[109291] trunk/dports/lang

jeremyhu at macports.org jeremyhu at macports.org
Mon Aug 12 08:49:06 PDT 2013


Revision: 109291
          https://trac.macports.org/changeset/109291
Author:   jeremyhu at macports.org
Date:     2013-08-12 08:49:06 -0700 (Mon, 12 Aug 2013)
Log Message:
-----------
gcc*: Add libgcc{45,,-devel} subports to replace libstdcxx{,-devel} subports

This reduces the possibility that conflicting emutls implementations 
will be in the same process (#38814).

Fixes --enable-libstdccxx-time for gcc4[67] (#36364).

Removes ppl dependency for gcc4[89] (#38865).

Revbump dragonegg ports as required.

Modified Paths:
--------------
    trunk/dports/lang/dragonegg-3.0/Portfile
    trunk/dports/lang/dragonegg-3.1/Portfile
    trunk/dports/lang/dragonegg-3.2/Portfile
    trunk/dports/lang/dragonegg-3.3/Portfile
    trunk/dports/lang/dragonegg-3.4/Portfile
    trunk/dports/lang/gcc42/Portfile
    trunk/dports/lang/gcc43/Portfile
    trunk/dports/lang/gcc44/Portfile
    trunk/dports/lang/gcc45/Portfile
    trunk/dports/lang/gcc46/Portfile
    trunk/dports/lang/gcc47/Portfile
    trunk/dports/lang/gcc48/Portfile
    trunk/dports/lang/gcc49/Portfile

Added Paths:
-----------
    trunk/dports/lang/gcc46/files/enable_libstdcxx_time_yes.patch
    trunk/dports/lang/gcc47/files/enable_libstdcxx_time_yes.patch
    trunk/dports/lang/libstdcxx/
    trunk/dports/lang/libstdcxx/Portfile

Removed Paths:
-------------
    trunk/dports/lang/gcc48/files/force-static-gcc.patch
    trunk/dports/lang/gcc49/files/force-static-gcc.patch

Modified: trunk/dports/lang/dragonegg-3.0/Portfile
===================================================================
--- trunk/dports/lang/dragonegg-3.0/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/dragonegg-3.0/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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
 }

Modified: trunk/dports/lang/dragonegg-3.1/Portfile
===================================================================
--- trunk/dports/lang/dragonegg-3.1/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/dragonegg-3.1/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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
 }

Modified: trunk/dports/lang/dragonegg-3.2/Portfile
===================================================================
--- trunk/dports/lang/dragonegg-3.2/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/dragonegg-3.2/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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
 }

Modified: trunk/dports/lang/dragonegg-3.3/Portfile
===================================================================
--- trunk/dports/lang/dragonegg-3.3/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/dragonegg-3.3/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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
 }

Modified: trunk/dports/lang/dragonegg-3.4/Portfile
===================================================================
--- trunk/dports/lang/dragonegg-3.4/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/dragonegg-3.4/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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
 }

Modified: trunk/dports/lang/gcc42/Portfile
===================================================================
--- trunk/dports/lang/gcc42/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/gcc42/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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 port:libgcc45
 
 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 libobjc-gnu.2.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 {

Modified: trunk/dports/lang/gcc43/Portfile
===================================================================
--- trunk/dports/lang/gcc43/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/gcc43/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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 port:libgcc45
 
 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 libobjc-gnu.2.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

Modified: trunk/dports/lang/gcc44/Portfile
===================================================================
--- trunk/dports/lang/gcc44/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/gcc44/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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 port:libgcc45
 
 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 libobjc-gnu.2.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

Modified: trunk/dports/lang/gcc45/Portfile
===================================================================
--- trunk/dports/lang/gcc45/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/gcc45/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -6,9 +6,11 @@
 
 # Whenever this port is bumped for version/revision, please revbump dragonegg-3.[34]-gcc-4.5
 name                gcc45
+subport             libgcc45 {}
+
 epoch               1
 version             4.5.4
-revision            7
+revision            8
 platforms           darwin
 categories          lang
 maintainers         mww openmaintainer
@@ -62,7 +64,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 port:libgcc45
 
 depends_skip_archcheck-append gcc_select ld64 cctools
 license_noconflict  gmp mpfr ppl libmpc
@@ -139,6 +141,70 @@
 
 destroot.target     install install-info-host
 
+if {${subport} == "libgcc45"} {
+    # http://trac.macports.org/ticket/35770
+    # http://trac.macports.org/ticket/38814
+    # 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/libgcc/libgcc_s.1.dylib:libgcc port:libgcc45
+
+    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,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}
+    #configure.args-append --disable-bootstrap
+    #build.target        all
+
+    post-destroot {
+        file mkdir ${destroot}${prefix}/lib/libgcc.merged
+
+        set dylibs {libobjc-gnu.2.dylib}
+
+        foreach dylib ${dylibs} {
+            move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged
+            if {[variant_isset universal]} {
+                foreach archdir [glob ${destroot}${prefix}/lib/libgcc/*/] {
+                    set archdir_nodestroot [string map "${destroot}/ /" ${archdir}]
+                    if {[file exists ${archdir}/${dylib}]} {
+                        system "install_name_tool -id ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}"
+                        foreach link ${dylibs} {
+                            system "install_name_tool -change ${archdir_nodestroot}${link} ${prefix}/lib/libgcc/${link} ${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}"
+                    }
+                }
+            }
+
+            # strip debug symbols to supress debugger warnings:
+            # http://trac.macports.org/attachment/ticket/34831
+            system "strip -x ${destroot}${prefix}/lib/libgcc.merged/${dylib}"
+        }
+
+        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
+    }
+} else {
 post-destroot {
     file delete -force ${destroot}${prefix}/share/man/man7 \
         ${destroot}${prefix}/share/info
@@ -156,31 +222,26 @@
         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 libobjc-gnu.2.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
 select.file         ${filespath}/mp-${name}
 
+}
+
 platform darwin {
     if {${os.major} == 8} {
         # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45248

Modified: trunk/dports/lang/gcc46/Portfile
===================================================================
--- trunk/dports/lang/gcc46/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/gcc46/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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,12 +49,12 @@
                     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
 
-patchfiles          gcc-4.6-cloog_lang_c.patch
+patchfiles          gcc-4.6-cloog_lang_c.patch enable_libstdcxx_time_yes.patch
 patch.dir           ${workpath}/gcc-${version}
 
 set major           4.6
@@ -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

Added: trunk/dports/lang/gcc46/files/enable_libstdcxx_time_yes.patch
===================================================================
--- trunk/dports/lang/gcc46/files/enable_libstdcxx_time_yes.patch	                        (rev 0)
+++ trunk/dports/lang/gcc46/files/enable_libstdcxx_time_yes.patch	2013-08-12 15:49:06 UTC (rev 109291)
@@ -0,0 +1,12 @@
+--- libstdc++-v3/config/os/bsd/darwin/os_defines.h.orig	2012-10-11 20:46:07.000000000 -0400
++++ libstdc++-v3/config/os/bsd/darwin/os_defines.h	2012-10-11 20:46:18.000000000 -0400
+@@ -42,4 +42,9 @@
+ // Static initializer macro is buggy in darwin, see libstdc++/51906
+ #define _GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC
+ 
++// Configure checks for nanosleep fail on Darwin, but nanosleep and
++// sched_yield are always available, so use them.
++#define _GLIBCXX_USE_NANOSLEEP 1
++#define _GLIBCXX_USE_SCHED_YIELD 1
++
+ #endif

Modified: trunk/dports/lang/gcc47/Portfile
===================================================================
--- trunk/dports/lang/gcc47/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/gcc47/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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,12 +49,12 @@
                     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
 
-patchfiles          ppc_fde_encoding.diff  gcc-PR-53453.patch
+patchfiles          ppc_fde_encoding.diff gcc-PR-53453.patch enable_libstdcxx_time_yes.patch
 patch.dir           ${workpath}/gcc-${version}
 
 set major           4.7
@@ -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

Added: trunk/dports/lang/gcc47/files/enable_libstdcxx_time_yes.patch
===================================================================
--- trunk/dports/lang/gcc47/files/enable_libstdcxx_time_yes.patch	                        (rev 0)
+++ trunk/dports/lang/gcc47/files/enable_libstdcxx_time_yes.patch	2013-08-12 15:49:06 UTC (rev 109291)
@@ -0,0 +1,12 @@
+--- libstdc++-v3/config/os/bsd/darwin/os_defines.h.orig	2012-10-11 20:46:07.000000000 -0400
++++ libstdc++-v3/config/os/bsd/darwin/os_defines.h	2012-10-11 20:46:18.000000000 -0400
+@@ -42,4 +42,9 @@
+ // Static initializer macro is buggy in darwin, see libstdc++/51906
+ #define _GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC
+ 
++// Configure checks for nanosleep fail on Darwin, but nanosleep and
++// sched_yield are always available, so use them.
++#define _GLIBCXX_USE_NANOSLEEP 1
++#define _GLIBCXX_USE_SCHED_YIELD 1
++
+ #endif

Modified: trunk/dports/lang/gcc48/Portfile
===================================================================
--- trunk/dports/lang/gcc48/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/gcc48/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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
@@ -34,8 +34,8 @@
 
 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_lib         port:gmp port:mpfr port:libiconv port:libmpc port:cloog
+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
@@ -69,7 +69,6 @@
                     --with-gmp=${prefix} \
                     --with-mpfr=${prefix} \
                     --with-mpc=${prefix} \
-                    --with-ppl=${prefix} \
                     --with-cloog=${prefix} --enable-cloog-backend=isl \
                     --disable-cloog-version-check \
                     --enable-stage1-checking \
@@ -107,77 +106,92 @@
 
 destroot.target     install install-info-host
 
-if {${subport} == "libstdcxx"} {
-    conflicts       libstdcxx-devel
+if {${subport} == "libgcc"} {
+    conflicts       libgcc-devel
 
-    patchfiles-append  force-static-gcc.patch
+    # http://trac.macports.org/ticket/35770
+    # http://trac.macports.org/ticket/38814
+    # 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
+        set dylibs {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}
 
-        # 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 ${dylibs} {
+            move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged
+            if {[variant_isset universal]} {
+                foreach archdir [glob ${destroot}${prefix}/lib/libgcc/*/] {
+                    set archdir_nodestroot [string map "${destroot}/ /" ${archdir}]
+                    if {[file exists ${archdir}/${dylib}]} {
+                        system "install_name_tool -id ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}"
+                        foreach link ${dylibs} {
+                            system "install_name_tool -change ${archdir_nodestroot}${link} ${prefix}/lib/libgcc/${link} ${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}
             }
+
+            # strip debug symbols to supress debugger warnings:
+            # http://trac.macports.org/attachment/ticket/34831
+            system "strip -x ${destroot}${prefix}/lib/libgcc.merged/${dylib}"
         }
+
+        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 {
 post-destroot {
     file delete -force ${destroot}${prefix}/share/man/man7
     file delete -force ${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 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

Deleted: trunk/dports/lang/gcc48/files/force-static-gcc.patch
===================================================================
--- trunk/dports/lang/gcc48/files/force-static-gcc.patch	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/gcc48/files/force-static-gcc.patch	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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.
- 

Modified: trunk/dports/lang/gcc49/Portfile
===================================================================
--- trunk/dports/lang/gcc49/Portfile	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/gcc49/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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-20130811
-revision            0
+revision            1
 platforms           darwin
 categories          lang
 maintainers         mww openmaintainer
@@ -35,8 +35,8 @@
 
 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_lib         port:gmp port:mpfr port:libiconv port:libmpc port:cloog
+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
@@ -70,7 +70,6 @@
                     --with-gmp=${prefix} \
                     --with-mpfr=${prefix} \
                     --with-mpc=${prefix} \
-                    --with-ppl=${prefix} \
                     --with-cloog=${prefix} --enable-cloog-backend=isl \
                     --disable-cloog-version-check \
                     --enable-stage1-checking \
@@ -108,77 +107,92 @@
 
 destroot.target     install install-info-host
 
-if {${subport} == "libstdcxx-devel"} {
-    conflicts       libstdcxx
+if {${subport} == "libgcc-devel"} {
+    conflicts       libgcc
 
-    patchfiles-append  force-static-gcc.patch
+    # http://trac.macports.org/ticket/35770
+    # http://trac.macports.org/ticket/38814
+    # 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
+        set dylibs {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}
 
-        # 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 ${dylibs} {
+            move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged
+            if {[variant_isset universal]} {
+                foreach archdir [glob ${destroot}${prefix}/lib/libgcc/*/] {
+                    set archdir_nodestroot [string map "${destroot}/ /" ${archdir}]
+                    if {[file exists ${archdir}/${dylib}]} {
+                        system "install_name_tool -id ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}"
+                        foreach link ${dylibs} {
+                            system "install_name_tool -change ${archdir_nodestroot}${link} ${prefix}/lib/libgcc/${link} ${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}
             }
+
+            # strip debug symbols to supress debugger warnings:
+            # http://trac.macports.org/attachment/ticket/34831
+            system "strip -x ${destroot}${prefix}/lib/libgcc.merged/${dylib}"
         }
+
+        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 {
 post-destroot {
     file delete -force ${destroot}${prefix}/share/man/man7
     file delete -force ${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 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

Deleted: trunk/dports/lang/gcc49/files/force-static-gcc.patch
===================================================================
--- trunk/dports/lang/gcc49/files/force-static-gcc.patch	2013-08-12 15:48:05 UTC (rev 109290)
+++ trunk/dports/lang/gcc49/files/force-static-gcc.patch	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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.
- 

Added: trunk/dports/lang/libstdcxx/Portfile
===================================================================
--- trunk/dports/lang/libstdcxx/Portfile	                        (rev 0)
+++ trunk/dports/lang/libstdcxx/Portfile	2013-08-12 15:49:06 UTC (rev 109291)
@@ -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: trunk/dports/lang/libstdcxx/Portfile
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130812/c3d0aa80/attachment-0001.html>


More information about the macports-changes mailing list