<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/37619a17caf48f80aafda18e5c46a6dcf68c9e32">https://github.com/macports/macports-ports/commit/37619a17caf48f80aafda18e5c46a6dcf68c9e32</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 37619a1 Updates to the various gcc<X> and libgcc<X> ports to update gcc8 to 8.2 stable release and to add new gcc9 port based on a current beta snapshot. libgcc-devel consequently updated to now be based of the same gcc9 snapshsot.
</span>37619a1 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 37619a17caf48f80aafda18e5c46a6dcf68c9e32
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Sat Jul 28 11:06:16 2018 +0100
<span style='display:block; white-space:pre;color:#404040;'> Updates to the various gcc<X> and libgcc<X> ports to update gcc8 to 8.2 stable release
</span><span style='display:block; white-space:pre;color:#404040;'> and to add new gcc9 port based on a current beta snapshot. libgcc-devel consequently
</span><span style='display:block; white-space:pre;color:#404040;'> updated to now be based of the same gcc9 snapshsot.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> libgcc: Updated to be a standalone port, that picks the correct gcc primary runtime.
</span><span style='display:block; white-space:pre;color:#404040;'> gcc8: Update to gcc 8.2.0
</span><span style='display:block; white-space:pre;color:#404040;'> libgcc8: New port providing gcc 8.2.0 runtime
</span><span style='display:block; white-space:pre;color:#404040;'> libgcc7: New port based gcc 7.3.0. Contains older API library versions updated in libgcc.
</span><span style='display:block; white-space:pre;color:#404040;'> gcc7: Update to depend on libgcc7.
</span><span style='display:block; white-space:pre;color:#404040;'> libgcc-devel: Update to gcc snapshot 9-20180722.
</span><span style='display:block; white-space:pre;color:#404040;'> gcc9: New port based on gcc snapshot 9-20180722.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> compilers-1.0.tcl : Updated to adapt to the new libgcc runtims as above
</span><span style='display:block; white-space:pre;color:#404040;'> languages-1.0.tcl and to add gcc8 as a compiler option.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/56521
</span>---
_resources/port1.0/group/compilers-1.0.tcl | 8 +-
_resources/port1.0/group/languages-1.0.tcl | 6 +-
lang/gcc6/Portfile | 11 +-
lang/gcc7/Portfile | 116 ++++++++++------
lang/gcc8/Portfile | 158 +++++++++++++---------
lang/gcc8/files/notparallel-install-headers.patch | 13 --
lang/gcc8/files/pr81033-v2.diff | 51 +++++++
lang/{gcc8 => gcc9}/Portfile | 113 +++++++++-------
lang/gcc9/files/mp-gcc9 | 7 +
lang/gcc9/files/pr81033-v2.diff | 51 +++++++
lang/libgcc/Portfile | 50 +++++++
11 files changed, 402 insertions(+), 182 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/compilers-1.0.tcl b/_resources/port1.0/group/compilers-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 061f51b..fb262f8 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/compilers-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/compilers-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -78,7 +78,7 @@ if {${build_arch} eq "ppc" || ${build_arch} eq "ppc64"} {
</span> set compilers.list {cc cxx cpp objc fc f77 f90}
# build database of gcc compiler attributes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set gcc_versions {44 45 46 47 48 49 5 6 7}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set gcc_versions {44 45 46 47 48 49 5 6 7 8}
</span> foreach v ${gcc_versions} {
# if the string is more than one character insert a '.' into it: e.g 49 -> 4.9
set version $v
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -91,9 +91,11 @@ foreach v ${gcc_versions} {
</span> set cdb(gcc$v,descrip) "MacPorts gcc $version"
set cdb(gcc$v,depends) port:gcc$v
if {[vercmp ${version} 4.6] < 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set cdb(gcc$v,dependsl) "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc6 port:libgcc45"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set cdb(gcc$v,dependsl) "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc7 port:libgcc6 port:libgcc45"
</span> } elseif {[vercmp ${version} 7] < 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set cdb(gcc$v,dependsl) "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc6"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set cdb(gcc$v,dependsl) "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc7 port:libgcc6"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {[vercmp ${version} 8] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set cdb(gcc$v,dependsl) "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc7"
</span> } else {
set cdb(gcc$v,dependsl) "path:lib/libgcc/libgcc_s.1.dylib:libgcc"
}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/languages-1.0.tcl b/_resources/port1.0/group/languages-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index bcacd26..5797d28 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/languages-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/languages-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -705,9 +705,11 @@ proc portconfigure::add_compiler_port_dependencies {compiler} {
</span> }
# compiler links against libraries in libgcc\d* and/or libgcc-devel
if {[vercmp ${gcc_version} 4.6] < 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set libgccs "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc6 port:libgcc45"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set libgccs "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc7 port:libgcc6 port:libgcc45"
</span> } elseif {[vercmp ${gcc_version} 7] < 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set libgccs "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc6"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set libgccs "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc7 port:libgcc6"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {[vercmp ${gcc_version} 8] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set libgccs "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc7"
</span> } else {
set libgccs "path:lib/libgcc/libgcc_s.1.dylib:libgcc"
}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc6/Portfile b/lang/gcc6/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index add2cd2..a4fc961 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc6/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc6/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,8 +7,8 @@ PortGroup compiler_blacklist_versions 1.0
</span> name gcc6
epoch 2
version 6.4.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport libgcc6 { revision 2 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport libgcc6 { revision 3 }
</span> platforms darwin
categories lang
maintainers nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -16,7 +16,7 @@ maintainers nomaintainer
</span> license {GPL-3+ Permissive}
description The GNU compiler collection
long_description The GNU compiler collection, including front ends for \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- C, C++, Objective-C, Objective-C++, and Fortran.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ C, C++, Objective-C, Objective-C++ and Fortran.
</span>
homepage https://gcc.gnu.org/
master_sites ftp://ftp.funet.fi/pub/mirrors/sources.redhat.com/pub/gcc/releases/gcc-${version}/ \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -36,6 +36,7 @@ depends_lib port:cctools \
</span> path:lib/pkgconfig/isl.pc:isl \
port:ld64 \
path:lib/libgcc/libgcc_s.1.dylib:libgcc \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libgcc7 \
</span> port:libiconv \
port:libmpc \
port:mpfr
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -181,7 +182,7 @@ if {${subport} eq "libgcc6"} {
</span>
# We need to list libquadmath.0.dylib here even though it isn't installed in order to make sure we cleanup libgfortran.3.dylib's linkage when +universal
# See https://trac.macports.org/ticket/54768
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set dylibs {libgfortran.3.dylib libquadmath.0.dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set dylibs {libgfortran.3.dylib libquadmath.0.dylib libasan.3.dylib}
</span>
foreach dylib ${dylibs} {
# Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -237,7 +238,7 @@ post-destroot {
</span> file rename ${file} ${newfile}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.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} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.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.3.dylib libatomic.1.dylib} {
</span> # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
# https://trac.macports.org/ticket/40098
# https://trac.macports.org/ticket/40100
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc7/Portfile b/lang/gcc7/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index d8f2a84..e776c00 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc7/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc7/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,8 +7,8 @@ PortGroup compiler_blacklist_versions 1.0
</span> name gcc7
epoch 2
version 7.3.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport libgcc { revision 1 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport libgcc7 { revision 0 }
</span> platforms darwin
categories lang
maintainers nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -16,7 +16,7 @@ maintainers nomaintainer
</span> license {GPL-3+ Permissive}
description The GNU compiler collection
long_description The GNU compiler collection, including front ends for \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- C, C++, Objective-C, Objective-C++, and Fortran.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ C, C++, Objective-C, Objective-C++ and Fortran.
</span>
homepage https://gcc.gnu.org/
master_sites ftp://ftp.funet.fi/pub/mirrors/sources.redhat.com/pub/gcc/releases/gcc-${version}/ \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -151,8 +151,30 @@ use_parallel_build yes
</span>
destroot.target install install-info-host
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "libgcc"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- conflicts libgcc-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Check if this is the last supported gcc version for this system.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# If it is, libgcc7 installs a full runtime, otherwise it only installs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# what is missing from newer libgccX builds.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# NOTE : The logic here must match that in the libgcc port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set isLastSupported [ expr ${os.major} <= 10 ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${isLastSupported} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Don't depend on libgcc, as libgcc7 is libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-delete path:lib/libgcc/libgcc_s.1.dylib:libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "libgcc7" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Activate hack for new libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/wiki/PortfileRecipes#deactivatehack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pre-activate {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![catch {set installed [lindex [registry_active libgcc] 0]}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Extract the epoch of the installed libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set _epoch [lindex $installed 5]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If < 3 need to deactivate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[vercmp $_epoch 3] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ registry_deactivate_composite libgcc "" [list ports_nodepcheck 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span>
# http://trac.macports.org/ticket/35770
# http://trac.macports.org/ticket/38814
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -166,8 +188,6 @@ if {${subport} eq "libgcc"} {
</span> # version should continue to provide a subport for that and older gcc
# versions.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-delete path:lib/libgcc/libgcc_s.1.dylib:libgcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> configure.args-replace \
--libdir=${prefix}/lib/${name} \
--libdir=${prefix}/lib/libgcc
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -196,8 +216,14 @@ if {${subport} eq "libgcc"} {
</span> # Note that we really don't want to include libgcc_ext.10.[45].dylib here, but install_name_tool
# doesn't know how to change the id of stubs, and it's easier than recreating them for each
# gcc port.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set dylibs {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.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}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${isLastSupported} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Install all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set dylibs {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.4.dylib libubsan.0.dylib libcilkrts.5.dylib libatomic.1.dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Only install those not in newer libgcc builds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set dylibs {libgfortran.4.dylib libquadmath.0.dylib libasan.4.dylib libubsan.0.dylib libcilkrts.5.dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> foreach dylib ${dylibs} {
# Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
# https://trac.macports.org/ticket/40098
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -231,48 +257,58 @@ if {${subport} eq "libgcc"} {
</span> file delete -force ${destroot}${prefix}/share
file delete -force ${destroot}${prefix}/lib/libgcc
file delete -force ${destroot}${prefix}/libexec
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> move ${destroot}${prefix}/lib/libgcc.merged ${destroot}${prefix}/lib/libgcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # For binary compatibility with binaries that linked against the old libstdcxx port
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ln -s libgcc/libstdc++.6.dylib ${destroot}${prefix}/lib/libstdc++.6.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${isLastSupported} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # For binary compatibility with binaries that linked against the old libstdcxx port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s libgcc/libstdc++.6.dylib ${destroot}${prefix}/lib/libstdc++.6.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Remove includes. Provided by newer libgcc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete -force ${destroot}${prefix}/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This is provided by the libgcc port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete -force ${destroot}${prefix}/lib/libgcc/libquadmath.0.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run-append port:gcc_select
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file delete ${destroot}${prefix}/share/info/dir
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach file [glob ${destroot}${prefix}/share/{info,man/man7}/*] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set extension [file extension ${file}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set newfile [regsub "${extension}$" ${file} "-mp-${major}${extension}"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:gcc_select port:libgcc7
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${file} ${newfile}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.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} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://trac.macports.org/ticket/40098
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://trac.macports.org/ticket/40100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- delete ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete ${destroot}${prefix}/share/info/dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach file [glob ${destroot}${prefix}/share/{info,man/man7}/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set extension [file extension ${file}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set newfile [regsub "${extension}$" ${file} "-mp-${major}${extension}"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${file} ${newfile}
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[file exists ${archdir}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- delete ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.4.dylib libubsan.0.dylib libcilkrts.5.dylib libatomic.1.dylib} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/ticket/40098
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/ticket/40100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file exists ${archdir}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
}
}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-select.group gcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-select.file ${filespath}/mp-${name}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.group gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.file ${filespath}/mp-${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> }
platform powerpc {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc8/Portfile b/lang/gcc8/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 89e1219..9cc656c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,52 +4,54 @@ PortSystem 1.0
</span> PortGroup select 1.0
PortGroup compiler_blacklist_versions 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-epoch 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+epoch 2
</span> name gcc8
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# This is the last version that builds; see
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82092
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version 8-20170604
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport libgcc-devel { revision 3 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 8.2.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport libgcc8 { revision 0 }
</span> platforms darwin
categories lang
maintainers nomaintainer
# an exception in the license allows dependents to not be GPL
license {GPL-3+ Permissive}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-description The GNU compiler collection, prerelease BETA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description The GNU compiler collection.
</span> long_description The GNU compiler collection, including front ends for \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- C, C++, Objective-C, Objective-C++, and Fortran. \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- This is a prerelease BETA version!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ C, C++, Objective-C, Objective-C++ and Fortran.
</span>
homepage https://gcc.gnu.org/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites ftp://ftp.funet.fi/pub/mirrors/sources.redhat.com/pub/gcc/snapshots/${version}/ \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ftp://gcc.gnu.org/pub/gcc/snapshots/${version}/ \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- http://gcc.skazkaforyou.com/snapshots/${version}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites ftp://ftp.funet.fi/pub/mirrors/sources.redhat.com/pub/gcc/releases/gcc-${version}/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ftp://ftp.gwdg.de/pub/linux/gcc/releases/gcc-${version}/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ftp://gcc.ftp.nluug.nl/mirror/languages/gcc/releases/gcc-${version}/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ftp://gcc.gnu.org/pub/gcc/releases/gcc-${version}/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gnu:gcc/gcc-${version}
</span>
distname gcc-${version}
use_xz yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 5ca2b4868ba36a195f17fbacab881e04a97ae3c7 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 b07104e99b0b2f613395b74260b05adb1c2f59b9549713a07a63425ecb33e411
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 4fba19867980d04bed1e62d46d4787c99f4fd13d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 63460876
</span>
depends_lib port:cctools \
port:gmp \
path:lib/pkgconfig/isl.pc:isl \
port:ld64 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libgcc-devel \
</span> port:libiconv \
port:libmpc \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:mpfr \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:zlib
</span>
depends_skip_archcheck-append gcc_select ld64 cctools
<span style='display:block; white-space:pre;background:#ffe0e0;'>-license_noconflict gmp mpfr ppl libmpc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Work around parallel building issue on APFS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append notparallel-install-headers.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license_noconflict gmp mpfr ppl libmpc zlib
</span>
set major [lindex [split ${version} .-] 0]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fix compilation with older cctools releases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81033 comment 40
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Probably can be removed once gcc 8.3.0 is released.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append pr81033-v2.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> platform darwin {
configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,8 +145,29 @@ use_parallel_build yes
</span>
destroot.target install install-info-host
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "libgcc-devel"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- conflicts libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Is this gcc release supported here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# NOTE : The logic here must match that in the libgcc port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${os.major} < 10 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "${name} ${version} is not supported on Darwin ${os.major}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -code error "incompatible OS X version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "libgcc8"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Activate hack for new libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/wiki/PortfileRecipes#deactivatehack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pre-activate {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![catch {set installed [lindex [registry_active libgcc] 0]}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Extract the epoch of the installed libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set _epoch [lindex $installed 5]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If < 3 need to deactivate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[vercmp $_epoch 3] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ registry_deactivate_composite libgcc "" [list ports_nodepcheck 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span>
# http://trac.macports.org/ticket/35770
# http://trac.macports.org/ticket/38814
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -157,22 +180,20 @@ if {${subport} eq "libgcc-devel"} {
</span> # 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.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-delete port:libgcc-devel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> configure.args-replace \
--libdir=${prefix}/lib/${name} \
--libdir=${prefix}/lib/libgcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # see https://trac.macports.org/ticket/54766
configure.args-replace \
--includedir=${prefix}/include/${name} \
--includedir=${prefix}/include/gcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> configure.args-replace \
--with-gxx-include-dir=${prefix}/include/${name}/c++/ \
--with-gxx-include-dir=${prefix}/include/gcc/c++/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # 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).
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -181,15 +202,15 @@ if {${subport} eq "libgcc-devel"} {
</span> #compiler.blacklist-append {clang < 425}
#configure.args-append --disable-bootstrap
#build.target all
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-destroot {
file mkdir ${destroot}${prefix}/lib/libgcc.merged
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # Note that we really don't want to include libgcc_ext.10.[45].dylib here, but install_name_tool
# doesn't know how to change the id of stubs, and it's easier than recreating them for each
# gcc port.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set dylibs {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.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}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set dylibs {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.5.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.5.dylib libubsan.1.dylib libatomic.1.dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> foreach dylib ${dylibs} {
# Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
# https://trac.macports.org/ticket/40098
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -197,7 +218,7 @@ if {${subport} eq "libgcc-devel"} {
</span> if {! [file exists ${destroot}${prefix}/lib/libgcc/${dylib}]} {
continue
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged
if {[variant_isset universal]} {
foreach archdir [glob ${destroot}${prefix}/lib/libgcc/*/] {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -211,60 +232,63 @@ if {${subport} eq "libgcc-devel"} {
</span> }
}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # strip debug symbols to supress debugger warnings:
# http://trac.macports.org/attachment/ticket/34831
if {! [string match *libgcc_ext* ${dylib}]} {
system "strip -x ${destroot}${prefix}/lib/libgcc.merged/${dylib}"
}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> file delete -force ${destroot}${prefix}/bin
file delete -force ${destroot}${prefix}/share
file delete -force ${destroot}${prefix}/lib/libgcc
file delete -force ${destroot}${prefix}/libexec
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> move ${destroot}${prefix}/lib/libgcc.merged ${destroot}${prefix}/lib/libgcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # For binary compatibility with binaries that linked against the old libstdcxx port
ln -s libgcc/libstdc++.6.dylib ${destroot}${prefix}/lib/libstdc++.6.dylib
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run-append port:gcc_select
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file delete ${destroot}${prefix}/share/info/dir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach file [glob ${destroot}${prefix}/share/{info,man/man7}/*] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set extension [file extension ${file}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set newfile [regsub "${extension}$" ${file} "-mp-${major}${extension}"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:gcc_select port:libgcc8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append path:lib/libgcc/libgcc_s.1.dylib:libgcc
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${file} ${newfile}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.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} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://trac.macports.org/ticket/40098
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://trac.macports.org/ticket/40100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- delete ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete ${destroot}${prefix}/share/info/dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach file [glob ${destroot}${prefix}/share/{info,man/man7}/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set extension [file extension ${file}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set newfile [regsub "${extension}$" ${file} "-mp-${major}${extension}"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${file} ${newfile}
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[file exists ${archdir}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- delete ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.5.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.5.dylib libubsan.1.dylib libatomic.1.dylib} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/ticket/40098
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/ticket/40100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file exists ${archdir}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
}
}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-select.group gcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-select.file ${filespath}/mp-${name}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.group gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.file ${filespath}/mp-${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> }
platform powerpc {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc8/files/notparallel-install-headers.patch b/lang/gcc8/files/notparallel-install-headers.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 68f60c7..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc8/files/notparallel-install-headers.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,13 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Work around parallel building issue on APFS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- libstdc++-v3/include/Makefile.in.orig 2017-07-25 14:05:07.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libstdc++-v3/include/Makefile.in 2017-09-02 12:22:08.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1764,6 +1764,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @GLIBCXX_HOSTED_TRUE@install-data-local: install-headers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @GLIBCXX_HOSTED_FALSE@install-data-local: install-freestanding-headers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+.NOTPARALLEL: install-headers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # This is a subset of the full install-headers rule. We only need <ciso646>,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # <cstddef>, <cfloat>, <limits>, <climits>, <cstdint>, <cstdlib>, <new>,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # <typeinfo>, <exception>, <initializer_list>, <cstdalign>, <cstdarg>,
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc8/files/pr81033-v2.diff b/lang/gcc8/files/pr81033-v2.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..550efd0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc8/files/pr81033-v2.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,51 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/dwarf2out.c.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/dwarf2out.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -297,6 +297,10 @@ static unsigned int rnglist_idx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FUNC_BEGIN_LABEL "LFB"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef FUNC_SECOND_SECT_LABEL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FUNC_SECOND_SECT_LABEL "LFSB"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef FUNC_END_LABEL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FUNC_END_LABEL "LFE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1212,21 +1216,24 @@ static void set_cur_line_info_table (section *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dwarf2out_switch_text_section (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char label[MAX_ARTIFICIAL_LABEL_BYTES];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ section *sect;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dw_fde_ref fde = cfun->fde;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_assert (cfun && fde && fde->dw_fde_second_begin == NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ASM_GENERATE_INTERNAL_LABEL (label, FUNC_SECOND_SECT_LABEL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ current_function_funcdef_no);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fde->dw_fde_second_begin = xstrdup (label);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!in_cold_section_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fde->dw_fde_end = crtl->subsections.cold_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fde->dw_fde_second_begin = crtl->subsections.hot_section_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fde->dw_fde_second_end = crtl->subsections.hot_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fde->dw_fde_end = crtl->subsections.hot_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fde->dw_fde_second_begin = crtl->subsections.cold_section_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fde->dw_fde_second_end = crtl->subsections.cold_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ have_multiple_function_sections = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/final.c.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/final.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2223,5 +2223,8 @@ final_scan_insn_1 (rtx_insn *insn, FILE *file, int optimize_p ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ASM_OUTPUT_LABEL (asm_out_file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IDENTIFIER_POINTER (cold_function_name));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (dwarf2out_do_frame ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && cfun->fde->dw_fde_second_begin != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ASM_OUTPUT_LABEL (asm_out_file, cfun->fde->dw_fde_second_begin);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc8/Portfile b/lang/gcc9/Portfile
</span>similarity index 78%
copy from lang/gcc8/Portfile
copy to lang/gcc9/Portfile
<span style='display:block; white-space:pre;color:#808080;'>index 89e1219..08e5661 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc9/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,13 +4,11 @@ PortSystem 1.0
</span> PortGroup select 1.0
PortGroup compiler_blacklist_versions 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-epoch 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-name gcc8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# This is the last version that builds; see
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82092
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version 8-20170604
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport libgcc-devel { revision 3 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+epoch 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name gcc9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 9-20180722
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport libgcc-devel { revision 0 }
</span> platforms darwin
categories lang
maintainers nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -18,43 +16,42 @@ maintainers nomaintainer
</span> license {GPL-3+ Permissive}
description The GNU compiler collection, prerelease BETA
long_description The GNU compiler collection, including front ends for \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- C, C++, Objective-C, Objective-C++, and Fortran. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ C, C++, Objective-C, Objective-C++ and Fortran. \
</span> This is a prerelease BETA version!
homepage https://gcc.gnu.org/
master_sites ftp://ftp.funet.fi/pub/mirrors/sources.redhat.com/pub/gcc/snapshots/${version}/ \
ftp://gcc.gnu.org/pub/gcc/snapshots/${version}/ \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ http://mirror.koddos.net/gcc/snapshots/${version} \
</span> http://gcc.skazkaforyou.com/snapshots/${version}/
distname gcc-${version}
use_xz yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 5ca2b4868ba36a195f17fbacab881e04a97ae3c7 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 b07104e99b0b2f613395b74260b05adb1c2f59b9549713a07a63425ecb33e411
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 a17074483ca2eea709e413ffc36afae6114c4b5a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 35cce1da9244babd1984d9df90ef27a11c24d2b92a1264b4392f8a37aeb144f7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 62039980
</span>
depends_lib port:cctools \
port:gmp \
path:lib/pkgconfig/isl.pc:isl \
port:ld64 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libgcc-devel \
</span> port:libiconv \
port:libmpc \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:mpfr \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:zlib
</span>
depends_skip_archcheck-append gcc_select ld64 cctools
<span style='display:block; white-space:pre;background:#ffe0e0;'>-license_noconflict gmp mpfr ppl libmpc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Work around parallel building issue on APFS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append notparallel-install-headers.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license_noconflict gmp mpfr ppl libmpc zlib
</span>
set major [lindex [split ${version} .-] 0]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fix compilation with older cctools releases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81033 comment 40
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append pr81033-v2.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> platform darwin {
configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # see https://gcc.gnu.org/ml/gcc-patches/2012-05/msg00672.html
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-float128.diff
</span> }
configure.dir ${workpath}/build
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -125,6 +122,9 @@ pre-configure {
</span> file mkdir ${configure.dir}
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Added for gcc9 beta. To be checked if needed come release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append gcc-4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # http://trac.macports.org/ticket/29067
compiler.blacklist-append gcc-4.0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,6 +143,14 @@ use_parallel_build yes
</span>
destroot.target install install-info-host
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Is this gcc release supported here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${os.major} < 10 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "${name} ${version} is not supported on Darwin ${os.major}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -code error "incompatible OS X version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {${subport} eq "libgcc-devel"} {
conflicts libgcc
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -158,8 +166,6 @@ if {${subport} eq "libgcc-devel"} {
</span> # version should continue to provide a subport for that and older gcc
# versions.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-delete port:libgcc-devel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> configure.args-replace \
--libdir=${prefix}/lib/${name} \
--libdir=${prefix}/lib/libgcc
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -188,7 +194,7 @@ if {${subport} eq "libgcc-devel"} {
</span> # Note that we really don't want to include libgcc_ext.10.[45].dylib here, but install_name_tool
# doesn't know how to change the id of stubs, and it's easier than recreating them for each
# gcc port.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set dylibs {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.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}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set dylibs {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.5.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.5.dylib libubsan.1.dylib libatomic.1.dylib}
</span>
foreach dylib ${dylibs} {
# Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -229,42 +235,45 @@ if {${subport} eq "libgcc-devel"} {
</span> # For binary compatibility with binaries that linked against the old libstdcxx port
ln -s libgcc/libstdc++.6.dylib ${destroot}${prefix}/lib/libstdc++.6.dylib
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run-append port:gcc_select
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file delete ${destroot}${prefix}/share/info/dir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach file [glob ${destroot}${prefix}/share/{info,man/man7}/*] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set extension [file extension ${file}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set newfile [regsub "${extension}$" ${file} "-mp-${major}${extension}"]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${file} ${newfile}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.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} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://trac.macports.org/ticket/40098
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://trac.macports.org/ticket/40100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- delete ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:gcc_select
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:libgcc-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete ${destroot}${prefix}/share/info/dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach file [glob ${destroot}${prefix}/share/{info,man/man7}/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set extension [file extension ${file}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set newfile [regsub "${extension}$" ${file} "-mp-${major}${extension}"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${file} ${newfile}
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[file exists ${archdir}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- delete ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.5.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.5.dylib libubsan.1.dylib libatomic.1.dylib} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/ticket/40098
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/ticket/40100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file exists ${archdir}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
}
}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-select.group gcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-select.file ${filespath}/mp-${name}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.group gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.file ${filespath}/mp-${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> }
platform powerpc {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc9/files/mp-gcc9 b/lang/gcc9/files/mp-gcc9
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0cc656b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc9/files/mp-gcc9
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/gcc-mp-9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/cpp-mp-9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/c++-mp-9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/g++-mp-9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/gcov-mp-9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/gfortran-mp-9
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc9/files/pr81033-v2.diff b/lang/gcc9/files/pr81033-v2.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..550efd0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc9/files/pr81033-v2.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,51 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/dwarf2out.c.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/dwarf2out.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -297,6 +297,10 @@ static unsigned int rnglist_idx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FUNC_BEGIN_LABEL "LFB"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef FUNC_SECOND_SECT_LABEL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FUNC_SECOND_SECT_LABEL "LFSB"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef FUNC_END_LABEL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FUNC_END_LABEL "LFE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1212,21 +1216,24 @@ static void set_cur_line_info_table (section *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dwarf2out_switch_text_section (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char label[MAX_ARTIFICIAL_LABEL_BYTES];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ section *sect;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dw_fde_ref fde = cfun->fde;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_assert (cfun && fde && fde->dw_fde_second_begin == NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ASM_GENERATE_INTERNAL_LABEL (label, FUNC_SECOND_SECT_LABEL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ current_function_funcdef_no);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fde->dw_fde_second_begin = xstrdup (label);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!in_cold_section_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fde->dw_fde_end = crtl->subsections.cold_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fde->dw_fde_second_begin = crtl->subsections.hot_section_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fde->dw_fde_second_end = crtl->subsections.hot_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fde->dw_fde_end = crtl->subsections.hot_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fde->dw_fde_second_begin = crtl->subsections.cold_section_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fde->dw_fde_second_end = crtl->subsections.cold_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ have_multiple_function_sections = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/final.c.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/final.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2223,5 +2223,8 @@ final_scan_insn_1 (rtx_insn *insn, FILE *file, int optimize_p ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ASM_OUTPUT_LABEL (asm_out_file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IDENTIFIER_POINTER (cold_function_name));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (dwarf2out_do_frame ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && cfun->fde->dw_fde_second_begin != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ASM_OUTPUT_LABEL (asm_out_file, cfun->fde->dw_fde_second_begin);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/libgcc/Portfile b/lang/libgcc/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..ee71b22
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/libgcc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,50 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup select 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+epoch 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories lang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers nomaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distfiles
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_configure no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported_archs noarch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts libgcc-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description Provides the appropriate gcc runtime.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description ${description} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Picks the version to use based on macOS version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license BSD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage https://www.macports.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Pick the gcc version that provides the primary runtime.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# NOTE : The logic here must match that in the gccX ports.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.major} < 10 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_version 7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_version 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib port:libgcc${gcc_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${destroot}${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "echo 'libgcc runtime is provided by libgcc${gcc_version}' > ${destroot}${prefix}/share/doc/${name}/README"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-deactivate {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # When this port is deactivated, the associated libgccX should also be.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![catch {set installed [lindex [registry_active libgcc${gcc_version}] 0]}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ registry_deactivate_composite libgcc${gcc_version} "" [list ports_nodepcheck 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span></pre><pre style='margin:0'>
</pre>