<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/42f06bb4bdadd66d3692857d95dd7bd6a8c49237">https://github.com/macports/macports-ports/commit/42f06bb4bdadd66d3692857d95dd7bd6a8c49237</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 42f06bb4bdadd66d3692857d95dd7bd6a8c49237
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Wed Jul 3 15:49:57 2024 +0100
<span style='display:block; white-space:pre;color:#404040;'> gcc14: Make default runtime provider
</span>---
lang/gcc12/Portfile | 2 +-
lang/gcc13/Portfile | 98 ++++++++--------------------------------------------
lang/gcc14/Portfile | 11 ++++--
lang/libgcc/Portfile | 4 +--
4 files changed, 26 insertions(+), 89 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc12/Portfile b/lang/gcc12/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index a70dcb946db..cd6559acb2c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc12/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc12/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -376,7 +376,7 @@ if {${subport} eq ${libgccname}} {
</span> # No need to build as nothing that isn't provided by libgcc13
platforms any
<span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_run path:share/doc/libgcc/README:libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run port:libgcc13
</span> depends_lib
fetch.type none
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc13/Portfile b/lang/gcc13/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 4365d8b351b..f317f26de19 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc13/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc13/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,7 +6,7 @@ PortGroup compiler_blacklist_versions 1.0
</span> PortGroup active_variants 1.1
PortGroup conflicts_build 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-epoch 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+epoch 1
</span> name gcc13
homepage https://gcc.gnu.org/
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -62,7 +62,7 @@ depends_lib-append port:cctools \
</span> port:zlib \
port:zstd
depends_run-append port:gcc_select \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- path:share/doc/libgcc/README:libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libgcc13
</span>
depends_skip_archcheck-append gcc_select ld64 cctools
license_noconflict gmp mpfr ppl libmpc zlib
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -340,9 +340,6 @@ proc dylib_list {location} {
</span>
if {${subport} eq ${libgccname}} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Always provides primary runtime so always in conflict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- conflicts libgcc-devel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # Activate hack for new libgcc
# https://trac.macports.org/wiki/PortfileRecipes#deactivatehack
pre-activate {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -388,88 +385,21 @@ if {${subport} eq ${libgccname}} {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # http://trac.macports.org/ticket/35770
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # http://trac.macports.org/ticket/38814
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # While there can be multiple versions of these runtimes in a single
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # process, it is not possible to pass objects between different versions,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # so we simplify this by having the libgcc port provide the newest version
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # of these runtimes for all versions of gcc to use.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # If there is a binary incompatible change to the runtime in a future
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # version of gcc, then the latest version of gcc to provide a given ABI
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # version should continue to provide a subport for that and older gcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # versions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_run
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-delete port:zlib port:libiconv
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append {*}${depends_lib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib port:zlib port:libiconv
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-replace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --libdir=${prefix}/lib/${name} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --libdir=${prefix}/lib/libgcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-replace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --with-gxx-include-dir=${prefix}/include/${name}/c++/ \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --with-gxx-include-dir=${prefix}/include/gcc/c++/
</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;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Temporary working dir for dylibs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file mkdir ${destroot}${prefix}/lib/libgcc.merged
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # loop over libs to install
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set dylibs [dylib_list ${destroot}${prefix}/lib/libgcc]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach dylib ${dylibs} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</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/libgcc/${dylib}] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- continue
</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;'>- # Move dylib to temp area
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # No need to build as nothing that isn't provided by libgcc14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ platforms any
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # If needed create versionless sym link to dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set dylib_split [split ${dylib} "."]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set dylib_nover ${destroot}${prefix}/lib/libgcc.merged/[lindex ${dylib_split} 0].[lindex ${dylib_split} end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { ![file exists ${dylib_nover}] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ln -s ${dylib} ${dylib_nover}
</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;'>- # Universal support
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_exists universal] && [variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach archdir [glob ${destroot}${prefix}/lib/libgcc/*/] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set archdir_nodestroot [string map "${destroot}/ /" ${archdir}]
</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;'>- system "install_name_tool -id ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach link [glob -tails -directory ${archdir} *.dylib] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system "install_name_tool -change ${archdir_nodestroot}${link} ${prefix}/lib/libgcc/${link} ${archdir}/${dylib}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 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}"
</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;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # strip debug symbols to supress debugger warnings:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # http://trac.macports.org/attachment/ticket/34831
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {! [string match *libgcc_ext* ${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system "strip -x ${destroot}${prefix}/lib/libgcc.merged/${dylib}"
</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;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file delete -force ${destroot}${prefix}/bin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file delete -force ${destroot}${prefix}/share
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file delete -force ${destroot}${prefix}/lib/libgcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file delete -force ${destroot}${prefix}/libexec
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- move ${destroot}${prefix}/lib/libgcc.merged ${destroot}${prefix}/lib/libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run path:share/doc/libgcc/README:libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib
</span>
<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;'>+ fetch.type none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ use_configure no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles
</span>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set doc_dir ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 755 -d ${doc_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "echo ${subport} provides no runtime > ${doc_dir}/README"
</span> }
}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc14/Portfile b/lang/gcc14/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 37925117230..e2f7af79876 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc14/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc14/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -342,8 +342,7 @@ proc dylib_list {location} {
</span> if {${subport} eq ${libgccname}} {
# Always provides primary runtime so always in conflict
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Until promoted to default runtime, conflict with libgcc13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- conflicts libgcc-devel libgcc13
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ conflicts libgcc-devel
</span>
# Activate hack for new libgcc
# https://trac.macports.org/wiki/PortfileRecipes#deactivatehack
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -380,6 +379,14 @@ if {${subport} eq ${libgccname}} {
</span> registry_deactivate_composite libgcc12 "" [list ports_nodepcheck 1]
}
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![catch {set installed [lindex [registry_active libgcc13] 0]}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Extract the epoch of the installed libgcc13
</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 < 1 need to deactivate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[vercmp $_epoch < 1]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ registry_deactivate_composite libgcc13 "" [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> if {![catch {set installed [lindex [registry_active libgcc-devel] 0]}]} {
# Extract the epoch of the installed libgcc-devel
set _epoch [lindex $installed 5]
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/libgcc/Portfile b/lang/libgcc/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 3a2a8c80504..3722e7c286b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/libgcc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/libgcc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortGroup select 1.0
</span>
epoch 3
name libgcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 8.0
</span> revision 0
conflicts libgcc-devel
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,7 +34,7 @@ variant universal { }
</span> if { ${os.major} < 10 } {
set gcc_version 7
} else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set gcc_version 13
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_version 14
</span> }
depends_lib port:libgcc${gcc_version}
</pre><pre style='margin:0'>
</pre>