<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/9c23a4332eed680565c279e8396f5e9b773bd059">https://github.com/macports/macports-ports/commit/9c23a4332eed680565c279e8396f5e9b773bd059</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 9c23a4332ee mimalloc: enable testing; fix build for older systems and PPC (#19357)
</span>9c23a4332ee is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 9c23a4332eed680565c279e8396f5e9b773bd059
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Sun Jul 16 23:43:22 2023 +0800

<span style='display:block; white-space:pre;color:#404040;'>    mimalloc: enable testing; fix build for older systems and PPC (#19357)
</span>---
 devel/mimalloc/Portfile                            | 31 ++++++++++++++++
 .../0001-prim.h-support-tls_slot-for-PPC.patch     | 42 ++++++++++++++++++++++
 ...-Easy-on-stress-testing-for-older-systems.patch | 35 ++++++++++++++++++
 3 files changed, 108 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/mimalloc/Portfile b/devel/mimalloc/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 4a49ddda6f5..f87412da146 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/mimalloc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/mimalloc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,6 +3,10 @@
</span> PortSystem          1.0
 PortGroup           github 1.0
 PortGroup           cmake 1.1
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           legacysupport 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# arc4random, strndup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+legacysupport.newest_darwin_requires_legacy 10
</span> 
 github.setup        microsoft mimalloc 2.1.2 v
 github.tarball_from archive
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -23,3 +27,30 @@ checksums           rmd160  362b6ba6270889af10af46e41e469847a42b99a0 \
</span>                     size    1163868
 
 patchfiles          patch-cmake.diff
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard   2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.c_standard     2011
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMI_BUILD_TESTS=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0001-prim.h-support-tls_slot-for-PPC.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0002-Easy-on-stress-testing-for-older-systems.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Turning on MI_OSX_INTERPOSE breaks the build with undefined symbols:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://trac.macports.org/ticket/67220
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://github.com/microsoft/mimalloc/issues/779
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Turning on MI_OSX_ZONE breaks test-stress with Bus error.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMI_OSX_INTERPOSE=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMI_OSX_ZONE=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[string match *gcc* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DMI_USE_LIBATOMIC=ON
</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 built with MI_OSX_INTERPOSE=OFF MI_OSX_ZONE=OFF, realpath test case in test-api fails.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/microsoft/mimalloc/issues/778
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.run            yes
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/mimalloc/files/0001-prim.h-support-tls_slot-for-PPC.patch b/devel/mimalloc/files/0001-prim.h-support-tls_slot-for-PPC.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..4fcf7b14c04
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/mimalloc/files/0001-prim.h-support-tls_slot-for-PPC.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,42 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 17520fbf0376a6cb87bb45f1c54a8fc4236bc04d Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 7 Jul 2023 16:32:03 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1/2] prim.h: support tls_slot for PPC
</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/mimalloc/prim.h | 8 +++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 7 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git include/mimalloc/prim.h include/mimalloc/prim.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9e56069..1218fac 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- include/mimalloc/prim.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ include/mimalloc/prim.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -146,7 +146,7 @@ static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // see also https://akkadia.org/drepper/tls.pdf for more info on the TLS register.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__GNUC__) && ( \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            (defined(__GLIBC__)   && (defined(__x86_64__) || defined(__i386__) || defined(__arm__) || defined(__aarch64__))) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        || (defined(__APPLE__)   && (defined(__x86_64__) || defined(__aarch64__))) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        || (defined(__APPLE__)   && (defined(__x86_64__) || defined(__aarch64__) || defined(__POWERPC__))) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         || (defined(__BIONIC__)  && (defined(__x86_64__) || defined(__i386__) || defined(__arm__) || defined(__aarch64__))) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         || (defined(__FreeBSD__) && (defined(__x86_64__) || defined(__i386__) || defined(__aarch64__))) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         || (defined(__OpenBSD__) && (defined(__x86_64__) || defined(__i386__) || defined(__aarch64__))) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -175,6 +175,9 @@ static inline void* mi_prim_tls_slot(size_t slot) mi_attr_noexcept {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     __asm__ volatile ("mrs %0, tpidr_el0" : "=r" (tcb));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     res = tcb[slot];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #elif defined(__POWERPC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    MI_UNUSED(ofs);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    res = pthread_getspecific(slot);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return res;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -202,6 +205,9 @@ static inline void mi_prim_tls_slot_set(size_t slot, void* value) mi_attr_noexce
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     __asm__ volatile ("mrs %0, tpidr_el0" : "=r" (tcb));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     tcb[slot] = value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #elif defined(__POWERPC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    int res; MI_UNUSED(ofs);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    res = pthread_setspecific(slot, value);
</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;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/mimalloc/files/0002-Easy-on-stress-testing-for-older-systems.patch b/devel/mimalloc/files/0002-Easy-on-stress-testing-for-older-systems.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..90e1d8fbdd9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/mimalloc/files/0002-Easy-on-stress-testing-for-older-systems.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,35 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 5ad676ba01af3615a2a3df66bd955c26f7df8912 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 8 Jul 2023 19:17:56 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2/2] Easy on stress testing for older systems
</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;'>+ test/test-stress.c | 8 ++++----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 4 insertions(+), 4 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git test/test-stress.c test/test-stress.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3ecb67b..8eb43b9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- test/test-stress.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ test/test-stress.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,8 +25,8 @@ terms of the MIT license.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // > mimalloc-test-stress [THREADS] [SCALE] [ITER]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // argument defaults
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static int THREADS = 32;      // more repeatable if THREADS <= #processors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static int SCALE   = 25;      // scaling factor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// static int THREADS = 32;      // more repeatable if THREADS <= #processors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// static int SCALE   = 25;      // scaling factor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(MI_TSAN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int ITER    = 10;      // N full iterations destructing and re-creating all threads (on tsan reduce for azure pipeline limits)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,8 +34,8 @@ static int ITER    = 10;      // N full iterations destructing and re-creating a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int ITER    = 50;      // N full iterations destructing and re-creating all threads
</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;'>+-// static int THREADS = 8;    // more repeatable if THREADS <= #processors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// static int SCALE   = 100;  // scaling factor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int THREADS = 8;    // more repeatable if THREADS <= #processors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int SCALE   = 100;  // scaling factor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define STRESS   // undefine for leak test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span></pre><pre style='margin:0'>

</pre>