Ticket #38814: libgcc.patch
File libgcc.patch, 41.7 KB (added by jeremyhu (Jeremy Huddleston Sequoia), 11 years ago) |
---|
-
dragonegg-3.0/Portfile
9 9 name dragonegg-${llvm_version} 10 10 11 11 subport ${name}-gcc-4.5 { 12 revision 112 revision 2 13 13 set gcc_version 4.5 14 14 set gcc_version_no_dot 45 15 15 } 16 16 subport ${name}-gcc-4.6 { 17 revision 117 revision 2 18 18 set gcc_version 4.6 19 19 set gcc_version_no_dot 46 20 20 } -
dragonegg-3.1/Portfile
9 9 name dragonegg-${llvm_version} 10 10 11 11 subport ${name}-gcc-4.5 { 12 revision 112 revision 2 13 13 set gcc_version 4.5 14 14 set gcc_version_no_dot 45 15 15 } 16 16 subport ${name}-gcc-4.6 { 17 revision 117 revision 2 18 18 set gcc_version 4.6 19 19 set gcc_version_no_dot 46 20 20 } 21 21 subport ${name}-gcc-4.7 { 22 revision 122 revision 2 23 23 set gcc_version 4.7 24 24 set gcc_version_no_dot 47 25 25 } -
dragonegg-3.2/Portfile
9 9 name dragonegg-${llvm_version} 10 10 11 11 subport ${name}-gcc-4.5 { 12 revision 112 revision 2 13 13 set gcc_version 4.5 14 14 set gcc_version_no_dot 45 15 15 } 16 16 subport ${name}-gcc-4.6 { 17 revision 117 revision 2 18 18 set gcc_version 4.6 19 19 set gcc_version_no_dot 46 20 20 } 21 21 subport ${name}-gcc-4.7 { 22 revision 122 revision 2 23 23 set gcc_version 4.7 24 24 set gcc_version_no_dot 47 25 25 } -
dragonegg-3.3/Portfile
9 9 name dragonegg-${llvm_version} 10 10 11 11 subport ${name}-gcc-4.5 { 12 revision 212 revision 3 13 13 set gcc_version 4.5 14 14 set gcc_version_no_dot 45 15 15 } 16 16 subport ${name}-gcc-4.6 { 17 revision 217 revision 3 18 18 set gcc_version 4.6 19 19 set gcc_version_no_dot 46 20 20 } 21 21 subport ${name}-gcc-4.7 { 22 revision 222 revision 3 23 23 set gcc_version 4.7 24 24 set gcc_version_no_dot 47 25 25 } 26 26 subport ${name}-gcc-4.8 { 27 revision 227 revision 3 28 28 set gcc_version 4.8 29 29 set gcc_version_no_dot 48 30 30 } -
dragonegg-3.4/Portfile
9 9 name dragonegg-${llvm_version} 10 10 11 11 subport ${name}-gcc-4.5 { 12 revision 312 revision 4 13 13 set gcc_version 4.5 14 14 set gcc_version_no_dot 45 15 15 } 16 16 subport ${name}-gcc-4.6 { 17 revision 317 revision 4 18 18 set gcc_version 4.6 19 19 set gcc_version_no_dot 46 20 20 } 21 21 subport ${name}-gcc-4.7 { 22 revision 322 revision 4 23 23 set gcc_version 4.7 24 24 set gcc_version_no_dot 47 25 25 } 26 26 subport ${name}-gcc-4.8 { 27 revision 327 revision 4 28 28 set gcc_version 4.8 29 29 set gcc_version_no_dot 48 30 30 } 31 31 subport ${name}-gcc-4.9 { 32 revision 232 revision 3 33 33 set gcc_version 4.9 34 34 set gcc_version_no_dot 49 35 35 } -
gcc42/Portfile
5 5 6 6 name gcc42 7 7 version 4.2.4 8 revision 78 revision 8 9 9 platforms darwin 10 10 categories lang 11 11 maintainers mww openmaintainer … … 41 41 universal_variant no 42 42 43 43 depends_lib port:gmp port:mpfr port:libiconv 44 depends_run port:gcc_select port:ld64 port:cctools path:lib/lib stdc\\\\+\\\\+.6.dylib:libstdcxx44 depends_run port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc45 45 45 46 46 depends_skip_archcheck-append gcc_select ld64 cctools 47 47 license_noconflict gmp mpfr … … 117 117 file delete -force ${destroot}${prefix}/share/man/man7 \ 118 118 ${destroot}${prefix}/share/info 119 119 120 if {[variant_isset universal]} { 121 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 122 if {[file exists ${archdir}/libstdc++.6.dylib]} { 123 eval delete [glob ${archdir}/libstdc++*] 120 foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libstdc++.6.dylib libobjc-gnu.2.dylib libgomp.1.dylib libssp.0.dylib} { 121 delete ${destroot}${prefix}/lib/${name}/${dylib} 122 ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib} 124 123 125 # This symlink is provided as a transition aide and will be removed 126 # with a future revision of this port. 127 ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib 124 if {[variant_isset universal]} { 125 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 126 if {[file exists ${archdir}/${dylib}]} { 127 delete ${archdir}/${dylib} 128 ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib} 129 } 128 130 } 129 131 } 130 132 } 131 132 # http://trac.macports.org/ticket/35770133 eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]134 135 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib136 137 # This symlink is provided as a transition aide and will be removed138 # with a future revision of this port.139 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib140 133 } 141 134 142 135 post-destroot { -
gcc43/Portfile
6 6 7 7 name gcc43 8 8 version 4.3.6 9 revision 79 revision 8 10 10 platforms darwin 11 11 categories lang 12 12 maintainers mww openmaintainer … … 55 55 rmd160 cde38f66b4b952f52938dc50d7606a0e1ccc7d2f 56 56 57 57 depends_lib port:gmp port:mpfr port:libiconv 58 depends_run port:gcc_select port:ld64 port:cctools path:lib/lib stdc\\\\+\\\\+.6.dylib:libstdcxx58 depends_run port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc45 59 59 60 60 depends_skip_archcheck-append gcc_select ld64 cctools 61 61 license_noconflict gmp mpfr … … 139 139 file copy ${ffitarget.h} ${destroot}${prefix}/include/${name}/ 140 140 } 141 141 142 if {[variant_isset universal]} { 143 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 144 if {[file exists ${archdir}/libstdc++.6.dylib]} { 145 eval delete [glob ${archdir}/libstdc++*] 142 foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libstdc++.6.dylib libobjc-gnu.2.dylib libgomp.1.dylib libssp.0.dylib} { 143 delete ${destroot}${prefix}/lib/${name}/${dylib} 144 ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib} 146 145 147 # This symlink is provided as a transition aide and will be removed 148 # with a future revision of this port. 149 ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib 146 if {[variant_isset universal]} { 147 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 148 if {[file exists ${archdir}/${dylib}]} { 149 delete ${archdir}/${dylib} 150 ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib} 151 } 150 152 } 151 153 } 152 154 } 153 154 # http://trac.macports.org/ticket/35770155 eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]156 157 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib158 159 # This symlink is provided as a transition aide and will be removed160 # with a future revision of this port.161 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib162 155 } 163 156 164 157 select.group gcc -
gcc44/Portfile
7 7 name gcc44 8 8 epoch 1 9 9 version 4.4.7 10 revision 610 revision 7 11 11 platforms darwin 12 12 categories lang 13 13 maintainers mww openmaintainer … … 56 56 rmd160 660d8e2f8162458e463de6195e58391ee711ed59 57 57 58 58 depends_lib port:gmp port:mpfr port:libiconv 59 depends_run port:gcc_select port:ld64 port:cctools path:lib/lib stdc\\\\+\\\\+.6.dylib:libstdcxx59 depends_run port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc45 60 60 61 61 depends_skip_archcheck-append gcc_select ld64 cctools 62 62 license_noconflict gmp mpfr … … 144 144 file rename ${destroot}${prefix}/share/python/classfile.py \ 145 145 ${destroot}${prefix}/share/python/classfile-44.py 146 146 147 if {[variant_isset universal]} { 148 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 149 if {[file exists ${archdir}/libstdc++.6.dylib]} { 150 eval delete [glob ${archdir}/libstdc++*] 147 foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libstdc++.6.dylib libobjc-gnu.2.dylib libgomp.1.dylib libssp.0.dylib} { 148 delete ${destroot}${prefix}/lib/${name}/${dylib} 149 ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib} 151 150 152 # This symlink is provided as a transition aide and will be removed 153 # with a future revision of this port. 154 ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib 151 if {[variant_isset universal]} { 152 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 153 if {[file exists ${archdir}/${dylib}]} { 154 delete ${archdir}/${dylib} 155 ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib} 156 } 155 157 } 156 158 } 157 159 } 158 159 # http://trac.macports.org/ticket/35770160 eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]161 162 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib163 164 # This symlink is provided as a transition aide and will be removed165 # with a future revision of this port.166 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib167 160 } 168 161 169 162 select.group gcc -
gcc45/Portfile
6 6 7 7 # Whenever this port is bumped for version/revision, please revbump dragonegg-3.[34]-gcc-4.5 8 8 name gcc45 9 subport libgcc45 {} 10 9 11 epoch 1 10 12 version 4.5.4 11 revision 713 revision 8 12 14 platforms darwin 13 15 categories lang 14 16 maintainers mww openmaintainer … … 62 64 sha256 98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781 63 65 64 66 depends_lib port:gmp port:mpfr port:libiconv port:libmpc port:ppl 65 depends_run port:gcc_select port:ld64 port:cctools path:lib/lib stdc\\\\+\\\\+.6.dylib:libstdcxx67 depends_run port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc45 66 68 67 69 depends_skip_archcheck-append gcc_select ld64 cctools 68 70 license_noconflict gmp mpfr ppl libmpc … … 139 141 140 142 destroot.target install install-info-host 141 143 144 if {${subport} == "libgcc45"} { 145 # http://trac.macports.org/ticket/35770 146 # http://trac.macports.org/ticket/38814 147 # While there can be multiple versions of these runtimes in a single 148 # process, it is not possible to pass objects between different versions, 149 # so we simplify this by having the libgcc port provide the newest version 150 # of these runtimes for all versions of gcc to use. 151 # 152 # If there is a binary incompatible change to the runtime in a future 153 # version of gcc, then the latest version of gcc to provide a given ABI 154 # version should continue to provide a subport for that and older gcc 155 # versions. 156 157 depends_run-delete path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc45 158 159 configure.args-delete --libdir=${prefix}/lib/${name} 160 configure.args-append --libdir=${prefix}/lib/libgcc 161 162 configure.args-delete --enable-languages=c,c++,objc,obj-c++,lto,fortran,java 163 configure.args-append --enable-languages=c,c++,objc,obj-c++,lto,fortran 164 165 # TODO: Possibly disable bootstrap with appropriate configure flags. 166 # the problem is that libstdc++'s configure script tests for tls support 167 # using the running compiler (not gcc for which libstdc++ is being built). 168 # Thus when we build with clang, we get a mismatch 169 # http://trac.macports.org/ticket/36116 170 #compiler.blacklist-append {clang < 425} 171 #configure.args-append --disable-bootstrap 172 #build.target all 173 174 post-destroot { 175 file mkdir ${destroot}${prefix}/lib/libgcc.merged 176 177 set dylibs {libobjc-gnu.2.dylib} 178 179 foreach dylib ${dylibs} { 180 move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged 181 if {[variant_isset universal]} { 182 foreach archdir [glob ${destroot}${prefix}/lib/libgcc/*/] { 183 set archdir_nodestroot [string map "${destroot}/ /" ${archdir}] 184 if {[file exists ${archdir}/${dylib}]} { 185 system "install_name_tool -id ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}" 186 foreach link ${dylibs} { 187 system "install_name_tool -change ${archdir_nodestroot}${link} ${prefix}/lib/libgcc/${link} ${archdir}/${dylib}" 188 } 189 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}" 190 } 191 } 192 } 193 194 # strip debug symbols to supress debugger warnings: 195 # http://trac.macports.org/attachment/ticket/34831 196 system "strip -x ${destroot}${prefix}/lib/libgcc.merged/${dylib}" 197 } 198 199 file delete -force ${destroot}${prefix}/bin 200 file delete -force ${destroot}${prefix}/share 201 file delete -force ${destroot}${prefix}/include 202 file delete -force ${destroot}${prefix}/lib/libgcc 203 file delete -force ${destroot}${prefix}/libexec 204 205 move ${destroot}${prefix}/lib/libgcc.merged ${destroot}${prefix}/lib/libgcc 206 } 207 } else { 142 208 post-destroot { 143 209 file delete -force ${destroot}${prefix}/share/man/man7 \ 144 210 ${destroot}${prefix}/share/info … … 156 222 eval file copy ${worksrcpath}/../gcc-${version}/gcc/config/darwin-sections.def [glob ${destroot}${prefix}/lib/${name}/gcc/*/${version}/plugin/include/config] 157 223 } 158 224 159 if {[variant_isset universal]} { 160 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 161 if {[file exists ${archdir}/libstdc++.6.dylib]} { 162 eval delete [glob ${archdir}/libstdc++*] 225 foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libstdc++.6.dylib libobjc-gnu.2.dylib libgomp.1.dylib libssp.0.dylib} { 226 delete ${destroot}${prefix}/lib/${name}/${dylib} 227 ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib} 163 228 164 # This symlink is provided as a transition aide and will be removed 165 # with a future revision of this port. 166 ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib 229 if {[variant_isset universal]} { 230 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 231 if {[file exists ${archdir}/${dylib}]} { 232 delete ${archdir}/${dylib} 233 ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib} 234 } 167 235 } 168 236 } 169 237 } 170 171 # http://trac.macports.org/ticket/35770172 eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]173 174 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib175 176 # This symlink is provided as a transition aide and will be removed177 # with a future revision of this port.178 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib179 238 } 180 239 181 240 select.group gcc 182 241 select.file ${filespath}/mp-${name} 183 242 243 } 244 184 245 platform darwin { 185 246 if {${os.major} == 8} { 186 247 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45248 -
gcc46/Portfile
9 9 10 10 # Whenever this port is bumped for version/revision, please revbump dragonegg-3.[012] and dragonegg-3.[34]-gcc-4.6 11 11 version 4.6.4 12 revision 112 revision 2 13 13 platforms darwin 14 14 categories lang 15 15 maintainers mww openmaintainer … … 49 49 sha256 98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781 50 50 51 51 depends_lib port:gmp port:mpfr port:libiconv port:libmpc port:ppl port:cloog 52 depends_run port:gcc_select port:ld64 port:cctools path:lib/lib stdc\\\\+\\\\+.6.dylib:libstdcxx52 depends_run port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc 53 53 54 54 depends_skip_archcheck-append gcc_select ld64 cctools 55 55 license_noconflict gmp mpfr ppl libmpc … … 135 135 file copy ${ffitarget.h} ${destroot}${prefix}/include/${name}/ 136 136 } 137 137 138 if {[variant_isset universal]} { 139 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 140 if {[file exists ${archdir}/libstdc++.6.dylib]} { 141 eval delete [glob ${archdir}/libstdc++*] 138 foreach dylib {libgcc_s.1.dylib libgfortran.3.dylib libquadmath.0.dylib libstdc++.6.dylib libgomp.1.dylib libssp.0.dylib} { 139 delete ${destroot}${prefix}/lib/${name}/${dylib} 140 ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib} 142 141 143 # This symlink is provided as a transition aide and will be removed 144 # with a future revision of this port. 145 ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib 142 if {[variant_isset universal]} { 143 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 144 if {[file exists ${archdir}/${dylib}]} { 145 delete ${archdir}/${dylib} 146 ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib} 147 } 146 148 } 147 149 } 148 150 } 149 150 # http://trac.macports.org/ticket/35770151 eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]152 153 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib154 155 # This symlink is provided as a transition aide and will be removed156 # with a future revision of this port.157 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib158 151 } 159 152 160 153 select.group gcc -
gcc47/Portfile
10 10 11 11 # Whenever this port is bumped for version/revision, please revbump dragonegg-3.[34]-gcc-4.7 12 12 version 4.7.3 13 revision 113 revision 2 14 14 platforms darwin 15 15 categories lang 16 16 maintainers mww openmaintainer … … 49 49 sha256 98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781 50 50 51 51 depends_lib port:gmp port:mpfr port:libiconv port:libmpc port:ppl port:cloog 52 depends_run port:gcc_select port:ld64 port:cctools path:lib/lib stdc\\\\+\\\\+.6.dylib:libstdcxx52 depends_run port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc 53 53 54 54 depends_skip_archcheck-append gcc_select ld64 cctools 55 55 license_noconflict gmp mpfr ppl libmpc … … 134 134 file copy ${ffitarget.h} ${destroot}${prefix}/include/${name}/ 135 135 } 136 136 137 if {[variant_isset universal]} { 138 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 139 if {[file exists ${archdir}/libstdc++.6.dylib]} { 140 eval delete [glob ${archdir}/libstdc++*] 137 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} { 138 delete ${destroot}${prefix}/lib/${name}/${dylib} 139 ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib} 141 140 142 # This symlink is provided as a transition aide and will be removed 143 # with a future revision of this port. 144 ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib 141 if {[variant_isset universal]} { 142 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 143 if {[file exists ${archdir}/${dylib}]} { 144 delete ${archdir}/${dylib} 145 ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib} 146 } 145 147 } 146 148 } 147 149 } 148 149 # http://trac.macports.org/ticket/35770150 eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]151 152 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib153 154 # This symlink is provided as a transition aide and will be removed155 # with a future revision of this port.156 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib157 150 } 158 151 159 152 select.group gcc -
gcc48/Portfile
5 5 PortGroup compiler_blacklist_versions 1.0 6 6 7 7 name gcc48 8 subport lib stdcxx{}8 subport libgcc {} 9 9 10 10 # Whenever this port is bumped for version/revision, please revbump dragonegg-3.[34]-gcc-4.8 11 11 epoch 2 12 12 version 4.8.1 13 revision 113 revision 2 14 14 platforms darwin 15 15 categories lang 16 16 maintainers mww openmaintainer … … 35 35 use_bzip2 yes 36 36 37 37 depends_lib port:gmp port:mpfr port:libiconv port:libmpc port:ppl port:cloog 38 depends_run port:gcc_select port:ld64 port:cctools path:lib/lib stdc\\\\+\\\\+.6.dylib:libstdcxx38 depends_run port:gcc_select port:ld64 port:cctools path:lib/libgcc/libgcc_s.1.dylib:libgcc 39 39 40 40 depends_skip_archcheck-append gcc_select ld64 cctools 41 41 license_noconflict gmp mpfr ppl libmpc … … 107 107 108 108 destroot.target install install-info-host 109 109 110 if {${subport} == "lib stdcxx"} {111 conflicts lib stdcxx-devel110 if {${subport} == "libgcc"} { 111 conflicts libgcc-devel 112 112 113 patchfiles-append force-static-gcc.patch 113 # http://trac.macports.org/ticket/35770 114 # http://trac.macports.org/ticket/38814 115 # While there can be multiple versions of these runtimes in a single 116 # process, it is not possible to pass objects between different versions, 117 # so we simplify this by having the libgcc port provide the newest version 118 # of these runtimes for all versions of gcc to use. 119 # 120 # If there is a binary incompatible change to the runtime in a future 121 # version of gcc, then the latest version of gcc to provide a given ABI 122 # version should continue to provide a subport for that and older gcc 123 # versions. 114 124 115 depends_run-delete path:lib/lib stdc\\\\+\\\\+.6.dylib:libstdcxx125 depends_run-delete path:lib/libgcc/libgcc_s.1.dylib:libgcc 116 126 117 127 configure.args-delete --libdir=${prefix}/lib/${name} 128 configure.args-append --libdir=${prefix}/lib/libgcc 118 129 119 130 configure.args-delete --enable-languages=c,c++,objc,obj-c++,lto,fortran,java 120 configure.args-append --enable-languages=c ++131 configure.args-append --enable-languages=c,c++,objc,obj-c++,lto,fortran 121 132 133 # TODO: Possibly disable bootstrap with appropriate configure flags. 134 # the problem is that libstdc++'s configure script tests for tls support 135 # using the running compiler (not gcc for which libstdc++ is being built). 136 # Thus when we build with clang, we get a mismatch 122 137 # http://trac.macports.org/ticket/36116 123 compiler.blacklist-append {clang < 425} 138 #compiler.blacklist-append {clang < 425} 139 #configure.args-append --disable-bootstrap 140 #build.target all 124 141 125 configure.args-append --disable-bootstrap126 build.target all127 128 destroot.target install-target-libstdc++-v3129 130 142 post-destroot { 131 eval file delete [glob ${destroot}${prefix}/lib/*{a,py}] 132 eval file delete [glob ${destroot}${prefix}/lib/libgcc*] 133 file delete -force ${destroot}${prefix}/lib/gcc 134 file delete -force ${destroot}${prefix}/share/gcc-${major} 135 file delete -force ${destroot}${prefix}/include/${name} 143 file mkdir ${destroot}${prefix}/lib/libgcc.merged 136 144 137 # Don't install the linktime symlink. The compilers will place this 138 # in their libdir, and we don't want to break other toolchains by having 139 # them link against this libstdc++ (at least not until it is built on 140 # top of libc++abi). 141 file delete ${destroot}${prefix}/lib/libstdc++.dylib 145 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} 142 146 143 # For compatibility. Delete this eventually. 144 system "touch ${destroot}${prefix}/lib/.libstdcxx" 145 146 if {[variant_isset universal]} { 147 foreach archdir [glob ${destroot}${prefix}/lib/*/] { 148 if {[file exists ${archdir}/libstdc++.6.dylib]} { 149 system "install_name_tool -id ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib" 150 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" 147 foreach dylib ${dylibs} { 148 move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged 149 if {[variant_isset universal]} { 150 foreach archdir [glob ${destroot}${prefix}/lib/libgcc/*/] { 151 set archdir_nodestroot [string map "${destroot}/ /" ${archdir}] 152 if {[file exists ${archdir}/${dylib}]} { 153 system "install_name_tool -id ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}" 154 foreach link ${dylibs} { 155 system "install_name_tool -change ${archdir_nodestroot}${link} ${prefix}/lib/libgcc/${link} ${archdir}/${dylib}" 156 } 157 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}" 158 } 151 159 } 152 file delete -force ${archdir}153 160 } 161 162 # strip debug symbols to supress debugger warnings: 163 # http://trac.macports.org/attachment/ticket/34831 164 system "strip -x ${destroot}${prefix}/lib/libgcc.merged/${dylib}" 154 165 } 166 167 file delete -force ${destroot}${prefix}/bin 168 file delete -force ${destroot}${prefix}/share 169 file delete -force ${destroot}${prefix}/include 170 file delete -force ${destroot}${prefix}/lib/libgcc 171 file delete -force ${destroot}${prefix}/libexec 172 173 move ${destroot}${prefix}/lib/libgcc.merged ${destroot}${prefix}/lib/libgcc 174 175 # For binary compatibility with binaries that linked against the old libstdcxx port 176 ln -s libgcc/libstdc++.6.dylib ${destroot}${prefix}/lib/libstdc++.6.dylib 155 177 } 156 178 } else { 157 179 post-destroot { … … 158 180 file delete -force ${destroot}${prefix}/share/man/man7 159 181 file delete -force ${destroot}${prefix}/share/info 160 182 161 if {[variant_isset universal]} { 162 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 163 if {[file exists ${archdir}/libstdc++.6.dylib]} { 164 eval delete [glob ${archdir}/libstdc++*] 183 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} { 184 delete ${destroot}${prefix}/lib/${name}/${dylib} 185 ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib} 165 186 166 # This symlink is provided as a transition aide and will be removed 167 # with a future revision of this port. 168 ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib 187 if {[variant_isset universal]} { 188 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 189 if {[file exists ${archdir}/${dylib}]} { 190 delete ${archdir}/${dylib} 191 ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib} 192 } 169 193 } 170 194 } 171 195 } 172 173 # http://trac.macports.org/ticket/35770174 eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]175 176 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib177 178 # This symlink is provided as a transition aide and will be removed179 # with a future revision of this port.180 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib181 196 } 182 197 183 198 select.group gcc -
gcc48/files/force-static-gcc.patch
1 --- gcc/config/darwin.h.orig 2012-09-13 20:20:33.000000000 -07002 +++ gcc/config/darwin.h 2012-09-13 20:23:03.000000000 -07003 @@ -325,17 +325,6 @@ extern GTY(()) int darwin_ms_struct;4 #undef REAL_LIBGCC_SPEC5 #define REAL_LIBGCC_SPEC \6 - "%{static-libgcc|static: -lgcc_eh -lgcc; \7 - shared-libgcc|fexceptions|fgnu-runtime: \8 - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4) \9 - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \10 - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \11 - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \12 - -lgcc ; \13 - :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \14 - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \15 - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \16 - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \17 - -lgcc }"18 + "-lgcc_eh -lgcc"19 20 /* We specify crt0.o as -lcrt0.o so that ld will search the library path.21 -
gcc49/Portfile
5 5 PortGroup compiler_blacklist_versions 1.0 6 6 7 7 name gcc49 8 subport lib stdcxx-devel {}8 subport libgcc-devel {} 9 9 10 10 # Whenever this port is bumped for version/revision, please revbump dragonegg-3.4-gcc-4.9 11 11 version 4.9-20130804 12 revision 112 revision 2 13 13 platforms darwin 14 14 categories lang 15 15 maintainers mww openmaintainer … … 36 36 use_bzip2 yes 37 37 38 38 depends_lib port:gmp port:mpfr port:libiconv port:libmpc port:ppl port:cloog 39 depends_run port:gcc_select port:ld64 port:cctools port:lib stdcxx-devel39 depends_run port:gcc_select port:ld64 port:cctools port:libgcc-devel 40 40 41 41 depends_skip_archcheck-append gcc_select ld64 cctools 42 42 license_noconflict gmp mpfr ppl libmpc … … 108 108 109 109 destroot.target install install-info-host 110 110 111 if {${subport} == "lib stdcxx-devel"} {112 conflicts lib stdcxx111 if {${subport} == "libgcc-devel"} { 112 conflicts libgcc 113 113 114 patchfiles-append force-static-gcc.patch 114 # http://trac.macports.org/ticket/35770 115 # http://trac.macports.org/ticket/38814 116 # While there can be multiple versions of these runtimes in a single 117 # process, it is not possible to pass objects between different versions, 118 # so we simplify this by having the libgcc port provide the newest version 119 # of these runtimes for all versions of gcc to use. 120 # 121 # If there is a binary incompatible change to the runtime in a future 122 # version of gcc, then the latest version of gcc to provide a given ABI 123 # version should continue to provide a subport for that and older gcc 124 # versions. 115 125 116 depends_run-delete port: ${subport}126 depends_run-delete port:libgcc-devel 117 127 118 128 configure.args-delete --libdir=${prefix}/lib/${name} 129 configure.args-append --libdir=${prefix}/lib/libgcc 119 130 120 131 configure.args-delete --enable-languages=c,c++,objc,obj-c++,lto,fortran,java 121 configure.args-append --enable-languages=c ++132 configure.args-append --enable-languages=c,c++,objc,obj-c++,lto,fortran 122 133 134 # TODO: Possibly disable bootstrap with appropriate configure flags. 135 # the problem is that libstdc++'s configure script tests for tls support 136 # using the running compiler (not gcc for which libstdc++ is being built). 137 # Thus when we build with clang, we get a mismatch 123 138 # http://trac.macports.org/ticket/36116 124 compiler.blacklist-append {clang < 425} 139 #compiler.blacklist-append {clang < 425} 140 #configure.args-append --disable-bootstrap 141 #build.target all 125 142 126 configure.args-append --disable-bootstrap127 build.target all128 129 destroot.target install-target-libstdc++-v3130 131 143 post-destroot { 132 eval file delete [glob ${destroot}${prefix}/lib/*{a,py}] 133 eval file delete [glob ${destroot}${prefix}/lib/libgcc*] 134 file delete -force ${destroot}${prefix}/lib/gcc 135 file delete -force ${destroot}${prefix}/share/gcc-${major} 136 file delete -force ${destroot}${prefix}/include/${name} 144 file mkdir ${destroot}${prefix}/lib/libgcc.merged 137 145 138 # Don't install the linktime symlink. The compilers will place this 139 # in their libdir, and we don't want to break other toolchains by having 140 # them link against this libstdc++ (at least not until it is built on 141 # top of libc++abi). 142 file delete ${destroot}${prefix}/lib/libstdc++.dylib 146 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} 143 147 144 # For compatibility. Delete this eventually. 145 system "touch ${destroot}${prefix}/lib/.libstdcxx" 146 147 if {[variant_isset universal]} { 148 foreach archdir [glob ${destroot}${prefix}/lib/*/] { 149 if {[file exists ${archdir}/libstdc++.6.dylib]} { 150 system "install_name_tool -id ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib" 151 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" 148 foreach dylib ${dylibs} { 149 move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged 150 if {[variant_isset universal]} { 151 foreach archdir [glob ${destroot}${prefix}/lib/libgcc/*/] { 152 set archdir_nodestroot [string map "${destroot}/ /" ${archdir}] 153 if {[file exists ${archdir}/${dylib}]} { 154 system "install_name_tool -id ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}" 155 foreach link ${dylibs} { 156 system "install_name_tool -change ${archdir_nodestroot}${link} ${prefix}/lib/libgcc/${link} ${archdir}/${dylib}" 157 } 158 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}" 159 } 152 160 } 153 file delete -force ${archdir}154 161 } 162 163 # strip debug symbols to supress debugger warnings: 164 # http://trac.macports.org/attachment/ticket/34831 165 system "strip -x ${destroot}${prefix}/lib/libgcc.merged/${dylib}" 155 166 } 167 168 file delete -force ${destroot}${prefix}/bin 169 file delete -force ${destroot}${prefix}/share 170 file delete -force ${destroot}${prefix}/include 171 file delete -force ${destroot}${prefix}/lib/libgcc 172 file delete -force ${destroot}${prefix}/libexec 173 174 move ${destroot}${prefix}/lib/libgcc.merged ${destroot}${prefix}/lib/libgcc 175 176 # For binary compatibility with binaries that linked against the old libstdcxx port 177 ln -s libgcc/libstdc++.6.dylib ${destroot}${prefix}/lib/libstdc++.6.dylib 156 178 } 157 179 } else { 158 180 post-destroot { … … 159 181 file delete -force ${destroot}${prefix}/share/man/man7 160 182 file delete -force ${destroot}${prefix}/share/info 161 183 162 if {[variant_isset universal]} { 163 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 164 if {[file exists ${archdir}/libstdc++.6.dylib]} { 165 eval delete [glob ${archdir}/libstdc++*] 184 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} { 185 delete ${destroot}${prefix}/lib/${name}/${dylib} 186 ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib} 166 187 167 # This symlink is provided as a transition aide and will be removed 168 # with a future revision of this port. 169 ln -s ${prefix}/lib/libstdc++.6.dylib ${archdir}/libstdc++.6.dylib 188 if {[variant_isset universal]} { 189 foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] { 190 if {[file exists ${archdir}/${dylib}]} { 191 delete ${archdir}/${dylib} 192 ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib} 193 } 170 194 } 171 195 } 172 196 } 173 174 # http://trac.macports.org/ticket/35770175 eval delete [glob ${destroot}${prefix}/lib/${name}/libstdc++*]176 177 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.dylib178 179 # This symlink is provided as a transition aide and will be removed180 # with a future revision of this port.181 ln -s ${prefix}/lib/libstdc++.6.dylib ${destroot}${prefix}/lib/${name}/libstdc++.6.dylib182 197 } 183 198 184 199 select.group gcc -
gcc49/files/force-static-gcc.patch
1 --- gcc/config/darwin.h.orig 2012-09-13 20:20:33.000000000 -07002 +++ gcc/config/darwin.h 2012-09-13 20:23:03.000000000 -07003 @@ -325,17 +325,6 @@ extern GTY(()) int darwin_ms_struct;4 #undef REAL_LIBGCC_SPEC5 #define REAL_LIBGCC_SPEC \6 - "%{static-libgcc|static: -lgcc_eh -lgcc; \7 - shared-libgcc|fexceptions|fgnu-runtime: \8 - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4) \9 - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \10 - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \11 - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \12 - -lgcc ; \13 - :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \14 - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \15 - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \16 - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \17 - -lgcc }"18 + "-lgcc_eh -lgcc"19 20 /* We specify crt0.o as -lcrt0.o so that ld will search the library path.21 -
libstdcxx/Portfile
1 # $Id$ 2 3 PortSystem 1.0 4 5 name libstdcxx 6 version 4.8.1 7 epoch 20130810 8 categories lang 9 replaced_by libgcc 10 11 subport libstdcxx-devel { 12 version 4.9 13 replaced_by libgcc-devel 14 } 15 16 PortGroup obsolete 1.0 17