<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/9f185e5b53d13f25bdea772e59359e9f156658dc">https://github.com/macports/macports-ports/commit/9f185e5b53d13f25bdea772e59359e9f156658dc</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 9f185e5b53d mach_override: new port
</span>9f185e5b53d is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 9f185e5b53d13f25bdea772e59359e9f156658dc
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Sun Dec 5 22:36:24 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    mach_override: new port
</span>---
 devel/mach_override/Portfile                   | 55 ++++++++++++++++++++++++++
 devel/mach_override/files/macports-udis86.diff | 13 ++++++
 devel/mach_override/files/relative-call.diff   | 47 ++++++++++++++++++++++
 3 files changed, 115 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/mach_override/Portfile b/devel/mach_override/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..546e84cd8ca
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/mach_override/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,55 @@
</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:ft=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           github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        rentzsch mach_override 919148f94db54fc04d287eb6a42c0c36b166bbfa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             20140512
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms           darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             MIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {@catap korins.ky:kirill} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         runtime function overriding for Mac OS X
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    {*}${description}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported_archs     i386, ppc, ppc64, x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  fc7bcb5c5ba48ac464eaac3d6141d4cd9905703b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  3860002c2c29da3b9a447d3fb9d36c23863e2d1e1d8b8c1505789d527d25e0b4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    66287
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build       port:libtool \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:udis86
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.pre_args      -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          macports-udis86.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    relative-call.diff
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W ${worksrcpath} "${configure.cc} ${configure.cflags} [get_canonical_archflags cc] -I ${prefix}/include -c -o mach_override.o mach_override.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W ${worksrcpath} "libtool -static -o libmach_override.a mach_override.o ${prefix}/lib/libudis86.a"
</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;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set include_dir ${destroot}${prefix}/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set lib_dir     ${destroot}${prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set doc_dir     ${destroot}${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0775 -d ${include_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0775 -d ${lib_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0755 -d ${doc_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0644 ${worksrcpath}/mach_override.h ${include_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0644 ${worksrcpath}/libmach_override.a ${lib_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0644 ${worksrcpath}/README.markdown ${doc_dir}
</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.run            yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W ${worksrcpath} "${configure.cc} ${configure.cflags} [get_canonical_archflags cc] -framework CoreServices -o test_mach_override test_mach_override.cp libmach_override.a"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W ${worksrcpath} "./test_mach_override"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/mach_override/files/macports-udis86.diff b/devel/mach_override/files/macports-udis86.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..70412662b5a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/mach_override/files/macports-udis86.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/mach_override.c b/mach_override.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 85a75e5..35165bf 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/mach_override.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/mach_override.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5,7 +5,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "mach_override.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(__i386__) || defined(__x86_64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "udis86.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <udis86.h>
</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 <mach-o/dyld.h>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/mach_override/files/relative-call.diff b/devel/mach_override/files/relative-call.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..af18b1b6e2d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/mach_override/files/relative-call.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,47 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From b93c962740b6cfdd7fab933f5a5d7f77c47d5ff7 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: noahd <noahd@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Thu, 15 May 2014 03:16:46 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1/2] Add support for relative call instructions in reentry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ island
</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;'>+ mach_override.c | 3 ++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 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 a/mach_override.c b/mach_override.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 85a75e5..9cffcc5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/mach_override.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/mach_override.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -641,7 +641,8 @@ fixupInstructions(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int     index;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   for (index = 0;index < instructionCount;index += 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if (*(uint8_t*)instructionsToFix == 0xE9) // 32-bit jump relative
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        uint8_t opcode = *(uint8_t*)instructionsToFix;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if ((opcode == 0xE9) || (opcode == 0xE8)) // 32-bit jump/call relative
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   uint32_t offset = (uintptr_t)originalFunction - (uintptr_t)escapeIsland;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   uint32_t *jumpOffsetPtr = (uint32_t*)((uintptr_t)instructionsToFix + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 7233e39c5095079286f6b033a938c9d948248844 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: noahd <noahd@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Thu, 15 May 2014 16:07:03 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2/2] Fix whitespace
</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;'>+ mach_override.c | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/mach_override.c b/mach_override.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9cffcc5..de857ad 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/mach_override.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/mach_override.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -641,7 +641,7 @@ fixupInstructions(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int     index;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   for (index = 0;index < instructionCount;index += 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        uint8_t opcode = *(uint8_t*)instructionsToFix;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          uint8_t opcode = *(uint8_t*)instructionsToFix;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if ((opcode == 0xE9) || (opcode == 0xE8)) // 32-bit jump/call relative
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   uint32_t offset = (uintptr_t)originalFunction - (uintptr_t)escapeIsland;
</span></pre><pre style='margin:0'>

</pre>