<pre style='margin:0'>
Eric A. Borisch (eborisch) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/711dc1064f3bbebfc2fa97a471c5a3e43977b1e8">https://github.com/macports/macports-ports/commit/711dc1064f3bbebfc2fa97a471c5a3e43977b1e8</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 711dc1064f3 mpich: unbreak 4.1.0 for older OSs, fix flags in native variant for ppc (#17754)
</span>711dc1064f3 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 711dc1064f3bbebfc2fa97a471c5a3e43977b1e8
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Tue Feb 21 04:21:47 2023 +0800

<span style='display:block; white-space:pre;color:#404040;'>    mpich: unbreak 4.1.0 for older OSs, fix flags in native variant for ppc (#17754)
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * mpich: unbreak 4.1 for older systems
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * mpich: fix native variant for powerpc: use correct flags
</span>---
 science/mpich/Portfile                   | 28 +++++-------
 science/mpich/files/patch-spinlocks.diff | 78 ++++++++++++++++++++++++++++++++
 2 files changed, 90 insertions(+), 16 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/mpich/Portfile b/science/mpich/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 85cc6db6811..3dad7bc2fdb 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/mpich/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/mpich/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -47,19 +47,9 @@ long_description    MPICH is a high-performance and widely portable\
</span> homepage            https://www.mpich.org/
 master_sites        ${homepage}static/downloads/${version}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${os.platform} eq "darwin" && ${os.major} > 16 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # 4.1+ expects os/lock.h; added in 10.13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        rmd160  c4e46f2edfbe4dd617b359597203d448856fc569 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        sha256  8b1ec63bc44c7caa2afbb457bc5b3cd4a70dbe46baba700123d67c48dc5ab6a0 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        size    38511339
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    version     4.0.3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        rmd160  7a65f2a1d080c2b7812295a8fc0b77ec1609b166 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        sha256  17406ea90a6ed4ecd5be39c9ddcbfac9343e6ab4f77ac4e8c5ebe4a3e3b6c501 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        size    38135700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  c4e46f2edfbe4dd617b359597203d448856fc569 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  8b1ec63bc44c7caa2afbb457bc5b3cd4a70dbe46baba700123d67c48dc5ab6a0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    38511339
</span> 
 livecheck.type      regex
 livecheck.regex     {href=.([0-9.p]+)/}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -198,7 +188,8 @@ if {${subport_enabled}} {
</span>                     patch-no_qmkshrobj.diff \
                     patch-ch4-ipv6.diff \
                     patch-mpich-darwin-powerpc.diff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    patch-pingpong.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-pingpong.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-spinlocks.diff
</span> 
     platform darwin powerpc {
         # libfabric calls for atomicops, on PPC at least
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -410,8 +401,13 @@ if {${subport_enabled}} {
</span>         configure.args-replace      --enable-fast=O2 \
                                     --enable-fast=all
         # Note these need to be above the following foreach
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.cflags-append     -march=native
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.cxxflags-append   -march=native
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${build_arch} in [list ppc ppc64]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.cflags-append     -mtune=native
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.cxxflags-append   -mtune=native
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.cflags-append     -march=native
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.cxxflags-append   -march=native
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
 
     #---------------------------------------------------------------------------
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/mpich/files/patch-spinlocks.diff b/science/mpich/files/patch-spinlocks.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8e64f76297f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/mpich/files/patch-spinlocks.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,78 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 304e91bff06c60922bb46a31b2745d3b65661bdf Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 15 Feb 2023 20:20:17 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] osd.h: fix spinlocks for macOS
</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;'>+ include/osx/osd.h | 43 +++++++++++++++++++++++++++++++++++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 43 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/include/osx/osd.h b/include/osx/osd.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a7eace242..b88074b82 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- modules/libfabric/include/osx/osd.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ modules/libfabric/include/osx/osd.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,6 +50,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <limits.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unix/osd.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "rdma/fi_errno.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "config.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -171,7 +173,12 @@ ssize_t ofi_recvmsg_tcp(SOCKET fd, struct msghdr *msg, int flags);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * used os_unfair_lock to implement pthread_spinlock.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * os_unfair_lock does not enforce fairness or lock ordering (hence
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * the name unfair), which is similar to pthread_spinlock.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * New code supported only on 10.12+: https://developer.apple.com/documentation/os/os_unfair_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Fallback: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/spinlock.3.html
</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 __MAC_OS_X_VERSION_MIN_REQUIRED > 101100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <os/lock.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef os_unfair_lock pthread_spinlock_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -204,6 +211,42 @@ static inline int pthread_spin_destroy(pthread_spinlock_t *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</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;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libkern/OSAtomic.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef OSSpinLock pthread_spinlock_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static inline int pthread_spin_init(pthread_spinlock_t *lock, int type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *lock = OS_SPINLOCK_INIT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return 0;
</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;'>++static inline int pthread_spin_lock(pthread_spinlock_t *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  OSSpinLockLock(lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return 0;
</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;'>++static inline int pthread_spin_unlock(pthread_spinlock_t *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  OSSpinLockUnlock(lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return 0;
</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;'>++static inline int pthread_spin_trylock(pthread_spinlock_t *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return OSSpinLockTry(lock) ? 0 : EBUSY;
</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;'>++static inline int pthread_spin_destroy(pthread_spinlock_t *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return 0;
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __cplusplus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span></pre><pre style='margin:0'>

</pre>