<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/b13f302ad2da716562911ede97da52892bfcafe1">https://github.com/macports/macports-ports/commit/b13f302ad2da716562911ede97da52892bfcafe1</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 b13f302ad2d {lib}gcc-devel: Port changes from gcc13
</span>b13f302ad2d is described below
<span style='display:block; white-space:pre;color:#808000;'>commit b13f302ad2da716562911ede97da52892bfcafe1
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Tue Mar 12 10:01:04 2024 +0000
<span style='display:block; white-space:pre;color:#404040;'> {lib}gcc-devel: Port changes from gcc13
</span>---
lang/gcc-devel/Portfile | 57 ++++++++++++++--------
.../files/patch-OSX10.14-ucred-atomic-define.diff | 27 ++++++++++
.../patch-disable-sys-header-missing-abort.diff | 11 +++++
3 files changed, 74 insertions(+), 21 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc-devel/Portfile b/lang/gcc-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index ba83d32fdf7..b90225485b3 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -141,10 +141,10 @@ if { ${subport} ne ${libcxxname} && ${os.platform} eq "darwin" } {
</span> # gcc has build issues on macOS 11.3 with the use of Xcode 12.5 clang via cctools for ld
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100340
# https://trac.macports.org/ticket/62775
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Extend skipping comparison to Darwin 14 and older.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Update for gcc13 - Similar issues on macOS 10.6, 10.13 ...
</span> if { ([vercmp ${xcodeversion} >= 12.5] && [vercmp ${xcodeversion} < 13]) || \
([vercmp ${xcodecltversion} >= 12.5] && [vercmp ${xcodecltversion} < 13]) || \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ${os.major} < 15 } \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${os.major} < 11 || ${os.major} == 17 } \
</span> {
# Skip bootstrap comparison entirely
configure.args-replace --with-build-config=bootstrap-debug --without-build-config
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -158,6 +158,15 @@ if { ${subport} ne ${libcxxname} && ${os.platform} eq "darwin" } {
</span> }
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Do not abort if 'system' headers in /opt/local/include/gcc are missing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-disable-sys-header-missing-abort.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # GCC fixinc work-around for sys/ucred.h on OSX10.14.4 no longer seems to work ???
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${os.major} == 18 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-OSX10.14-ucred-atomic-define.diff
</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> # Since GCC 7.4.0, during configure, it detects features supported by target-as.
# On the other hand, MacPorts cctools contain a proxy for 'as' that runs system
# 'as' or one of the supported MacPorts clang's 'as' if it is installed. Here,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -234,7 +243,7 @@ subport ${libcxxname} {
</span> if { ${os.platform} eq "darwin" && ${os.major} < 11 } {
default_variants-append +clang11
} else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- default_variants-append +clang14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants-append +clang16
</span> }
}
revision [ expr ${revision} + 0 ]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -305,6 +314,20 @@ compiler.blacklist-append {clang < 800} gcc-4.0 *gcc-4.2 {llvm-gcc-4.2 < 2336.1}
</span> # c++/v1/functional:1408:2: error: no member named 'fancy_abort' in namespace 'std::__1'; did you mean simply 'fancy_abort'?
compiler.blacklist-append {clang < 1001}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gcc can't be built by Xcode Clang 14.0.x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/ticket/67416
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://github.com/iains/gcc-12-branch/issues/6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ([vercmp ${xcodeversion} >= 14.0] && [vercmp ${xcodeversion} < 14.1]) || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ([vercmp ${xcodecltversion} >= 14.0] && [vercmp ${xcodecltversion} < 14.1]) } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "${name} cannot be built with Xcode/CLT 14.0.x"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "Either upgrade both Xcode and the Command Line Tools to 14.1 or later, or downgrade to 13.4."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -code error "incompatible Xcode/CLT 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;'>+
</span> # "-stdlib" would be passed on to the bootstrap compiler if present
configure.cxx_stdlib
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -316,14 +339,13 @@ destroot.target install install-info-host
</span> # gcc cannot build if libunwind-headers is active
conflicts_build-append libunwind-headers
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# List of dylibs to be installed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Note that we really don't want to include libgcc_ext.10.[45].dylib here, but install_name_tool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# doesn't know how to change the id of stubs, and it's easier than recreating them for each
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# gcc port.
</span><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 libgcc_s.1.1.dylib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libgcc_s.2.dylib libgfortran.5.dylib libquadmath.0.dylib libstdc++.6.dylib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.6.dylib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libubsan.1.dylib libatomic.1.dylib libgcc_ehs.1.1.dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Find dylibs at a given location
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc dylib_list {location} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Note *.*.dylib is to only match versioned dylibs, not the versionless sym links
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set dylibs [glob -directory ${location} -tails *.*.dylib]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_debug "Found at ${location} dylibs : ${dylibs}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return ${dylibs}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span>
# Moving libgccjit.0.dylib to libgcc failed for some reason
# https://github.com/macports/macports-ports/commit/ce950c5729c9178cd6c61f9f4096888a026bb87f#commitcomment-78932371
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -367,21 +389,13 @@ if {${subport} eq ${libgccname}} {
</span> --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;'>- # TODO: Possibly disable bootstrap with appropriate configure flags.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # the problem is that libstdc++'s configure script tests for tls support
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # using the running compiler (not gcc for which libstdc++ is being built).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Thus when we build with clang, we get a mismatch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # http://trac.macports.org/ticket/36116
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #compiler.blacklist-append {clang < 425}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #configure.args-append --disable-bootstrap
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #build.target all
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> post-destroot {
# Temporary working dir for dylibs
file mkdir ${destroot}${prefix}/lib/libgcc.merged
# loop over libs to install
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ set dylibs [dylib_list ${destroot}${prefix}/lib/libgcc]
</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;'>@@ -391,7 +405,7 @@ if {${subport} eq ${libgccname}} {
</span> continue
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Move dylib to it to temp area
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Move dylib to temp area
</span> move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged
# If needed create versionless sym link to dylib
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -454,6 +468,7 @@ if {${subport} eq ${name}} {
</span> }
# loop over libs to install
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ set dylibs [dylib_list ${destroot}${prefix}/lib/${name}]
</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;color:#808080;'>diff --git a/lang/gcc-devel/files/patch-OSX10.14-ucred-atomic-define.diff b/lang/gcc-devel/files/patch-OSX10.14-ucred-atomic-define.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..fe70dc377f9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc-devel/files/patch-OSX10.14-ucred-atomic-define.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/darwin-driver.cc.orig 2023-10-02 12:36:04
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/darwin-driver.cc 2023-10-02 13:30:34
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17,6 +17,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ along with GCC; see the file COPYING3. If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <http://www.gnu.org/licenses/>. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef _Atomic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define _Atomic volatile
</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;'>+ #include "config.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "libiberty.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsanitizer/sanitizer_common/sanitizer_platform.h.orig 2023-10-02 20:27:40
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsanitizer/sanitizer_common/sanitizer_platform.h 2023-10-02 20:28:52
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -444,6 +444,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define SANITIZER_START_BACKGROUND_THREAD_IN_ASAN_INTERNAL 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define SANITIZER_START_BACKGROUND_THREAD_IN_ASAN_INTERNAL 0
</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 _Atomic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define _Atomic volatile
</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;'>+ #endif // SANITIZER_PLATFORM_H
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc-devel/files/patch-disable-sys-header-missing-abort.diff b/lang/gcc-devel/files/patch-disable-sys-header-missing-abort.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..880bb1cc19c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc-devel/files/patch-disable-sys-header-missing-abort.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/Makefile.in.orig 2023-09-27 12:34:24
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/Makefile.in 2023-09-27 12:35:59
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3280,7 +3280,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo " ${BUILD_SYSTEM_HEADER_DIR}" >&2 ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tooldir_sysinc=`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "x${BUILD_SYSTEM_HEADER_DIR}" = "x$${tooldir_sysinc}"; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- then sleep 1; else exit 1; fi; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ then sleep 1; else exit 0; fi; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(mkinstalldirs) $${fix_dir}; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ chmod a+rx $${fix_dir} || true; \
</span></pre><pre style='margin:0'>
</pre>