<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/061c6023c18b92e8c2291824210f7d703bdb6dc4">https://github.com/macports/macports-ports/commit/061c6023c18b92e8c2291824210f7d703bdb6dc4</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 061c6023c18b92e8c2291824210f7d703bdb6dc4
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Sun Sep 10 23:26:20 2023 +0200

<span style='display:block; white-space:pre;color:#404040;'>    john-jumbo: fix build on arm64; add devel subport; claim maintainership
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/42379
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/62859
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/67973
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/67974
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/67975
</span>---
 sysutils/john/Portfile                  | 311 +++++++++++++++++++++++---------
 sysutils/john/files/patch-apple-m1.diff | 137 ++++++++++++++
 2 files changed, 367 insertions(+), 81 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/john/Portfile b/sysutils/john/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index b1d4327588e..198b66a3dbe 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/john/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/john/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,115 +1,264 @@
</span> # -*- 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 style='display:block; white-space:pre;background:#ffe0e0;'>-PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem                      1.0
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-name                john
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-conflicts           john-jumbo
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version             1.9.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-categories          sysutils security
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-maintainers         nomaintainer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-license             {GPL-2+ OpenSSLException}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                            john
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories                      sysutils security
</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:#ffe0e0;'>-description         Featureful Unix password cracker
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-long_description    John the Ripper is a UNIX password cracker, currently available for \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    UNIX (tested with Linux x86, FreeBSD x86, Solaris 2.x SPARC, OSF/1 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    Alpha), DOS, WinNT/Win95.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage            https://www.openwall.com/john/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms           darwin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites        http://www.openwall.com/${name}/k/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage                        https://www.openwall.com/john/
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-use_xz              yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  16114db2fe5004ce4044a2d56b46ef209b941dc4 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  0b266adcfef8c11eed690187e71494baea539efbd632fe221181063ba09508df \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    8944932
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles          patch-src-params.h.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles                      patch-src-params.h.diff
</span> 
 post-patch {
     reinplace "s|@PREFIX@|${prefix}|g" ${worksrcpath}/src/params.h
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-use_configure       no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "john"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version                     1.9.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision                    2
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-use_parallel_build  no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # john is quite old and doesn't support arm64, but jumbo is different story
</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:#ffe0e0;'>-build.dir           ${worksrcpath}/src
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-build.args          CC=${configure.cc}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-build.target        clean
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-switch ${configure.build_arch} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    i386 {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        build.target-append macosx-x86-sse2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    x86_64 {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # x86_64 is only supported on Leopard and up
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.major} >= 9} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            build.target-append macosx-x86-64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            configure.build_arch i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    license                     {GPL-2+ OpenSSLException}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description                 Featureful Unix password cracker
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    long_description            John the Ripper is a UNIX password cracker, currently available for \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                UNIX (tested with Linux x86, FreeBSD x86, Solaris 2.x SPARC, OSF/1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                Alpha), DOS, WinNT/Win95.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    master_sites                https://www.openwall.com/john/k/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    use_xz                      yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums                   rmd160  16114db2fe5004ce4044a2d56b46ef209b941dc4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                sha256  0b266adcfef8c11eed690187e71494baea539efbd632fe221181063ba09508df \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                size    8944932
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts                   john-jumbo john-jumbo-devel
</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;'>+    use_parallel_build          no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    build.dir                   ${worksrcpath}/src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    build.args                  CC=${configure.cc}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    build.target                clean
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    switch ${configure.build_arch} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        i386 {
</span>             build.target-append macosx-x86-sse2
         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ppc {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Use altivec if available
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {![catch {sysctl hw.vectorunit} result] && $result == 1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            build.target-append macosx-ppc32-altivec
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            build.target-append macosx-ppc32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        x86_64 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # x86_64 is only supported on Leopard and up
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${os.major} >= 9} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build.target-append macosx-x86-64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                configure.build_arch i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build.target-append macosx-x86-sse2
</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;'>+        ppc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Use altivec if available
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {![catch {sysctl hw.vectorunit} result] && $result == 1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build.target-append macosx-ppc32-altivec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build.target-append macosx-ppc32
</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;'>+        ppc64 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            build.target-append macosx-ppc64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            build.target-append unknown-arch
</span>         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ppc64 {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        build.target-append macosx-ppc64
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    file copy ${worksrcpath}/run ${destroot}${prefix}/share/john
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    system "chmod -R a+rX ${destroot}${prefix}/share/john"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    system "ln -s ${prefix}/share/john/john ${destroot}${prefix}/bin/john"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -d ${destroot}${prefix}/share/doc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    file copy ${worksrcpath}/doc ${destroot}${prefix}/share/doc/john
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    system "chmod -R a+rX ${destroot}${prefix}/share/doc/john"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport john-jumbo {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version                     1.9.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision                    3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set jumbo_patchlvl          1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    master_sites                https://www.openwall.com/john/k/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    distname                    ${name}-${version}-jumbo-${jumbo_patchlvl}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    use_xz                      yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums                   rmd160  ea75c464d211691f00db7aec66e0503c1177866b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                sha256  f5d123f82983c53d8cc598e174394b074be7a77756f5fb5ed8515918c81e7f3b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                size    33638768
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts                   john john-jumbo-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append           patch-apple-m1.diff
</span> }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+subport john-jumbo-devel {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    PortGroup                   github 1.0
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport john-jumbo {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    conflicts           john
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    version             1.9.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    revision            2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set jumbo_patchlvl  1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    license             GPL-2 GPL-3+ Apache-2 Restrictive
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    master_sites        https://www.openwall.com/john/k/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    github.setup                openwall john c798c3f39215f6e08c67677eb9b79f65cfe08e40
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version                     20230717
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision                    0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums                   rmd160  8bbee5e154eece0e05185342cca4fc852275a198 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                sha256  f45971f2d5d34b6c37bf76ea83b697226ffb00c0c9d5c8e7dde54e12a9a46e75 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                size    56766799
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts                   john john-jumbo
</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 {${subport} in [list "john-jumbo" "john-jumbo-devel"]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    PortGroup                   openssl 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description                 This is the community-enhanced, "jumbo" version of John the Ripper.
</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;'>+    license                     GPL-2 GPL-3+ Apache-2 Restrictive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append          port:bzip2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:gmp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:libpcap \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:zlib
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # note: according to https://www.openwall.com/john/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # developement appears to have moved to github
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # https://github.com/magnumripper/JohnTheRipper
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set perl_version            5.34
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append  path:lib/libssl.dylib:openssl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set ruby_branch             3.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set ruby_version            [string map {. {}} ${ruby_branch}]
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    distname            ${name}-${version}-jumbo-${jumbo_patchlvl}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # NOTE: not all scripts were migrated to python3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # See:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #  - https://github.com/openwall/john/issues/4883
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #  - https://github.com/openwall/john/pull/5309
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python2_branch          2.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python3_branch          3.11
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums           rmd160  ea75c464d211691f00db7aec66e0503c1177866b \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        sha256  f5d123f82983c53d8cc598e174394b074be7a77756f5fb5ed8515918c81e7f3b \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        size    33638768
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python2_version         [string map {. {}} ${python2_branch}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python3_version         [string map {. {}} ${python3_branch}]
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    use_configure       yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.dir       ${worksrcpath}/src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_run-append          port:p${perl_version}-compress-raw-lzma \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:p${perl_version}-digest-md4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:p${perl_version}-net-radius \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:p${perl_version}-netpacket \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:p${perl_version}-data-plist \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:perl${perl_version} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python2_version}-asn1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python2_version}-plyvel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python2_version}-pysap \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python3_version}-asn1crypto \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python3_version}-bsddb3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python3_version}-ldap3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python3_version}-parsimonious \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python3_version}-protobuf3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:python${python2_version} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:python${python3_version} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:ruby${ruby_version}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # error We need minimum OpenCL 1.2 to build with OpenCL support. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${subport} eq "john-jumbo"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_run-append      port:py${python2_version}-lxml \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python2_version}-pycryptodome \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python2_version}-scapy
</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 {${subport} eq "john-jumbo-devel"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_run-append      port:py${python3_version}-asn1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python3_version}-cbor2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python3_version}-lxml \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python3_version}-pycryptodome \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                port:py${python3_version}-scapy
</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;'>+    configure.dir               ${worksrcpath}/src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # error We need minimum OpenCL 1.2 to build with OpenCL support.
</span>     if {${os.platform} eq "darwin" && ${os.major} <= 11} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append      --disable-opencl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   --disable-opencl
</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;'>+    build.dir                   ${worksrcpath}/src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant native description {Enable CPU-specific optimizations} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   --enable-native-march
</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;'>+    variant experimental description {Enable new, experimental or even incomplete features} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   --enable-experimental-code
</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;'>+    variant threads description {Enable multithreaded support via OpenMP} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        compiler.openmp_version 3.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append      port:libomp
</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;'>+    # libomp aren't available on PowerPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${build_arch} ni [list ppc ppc64]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default_variants-append +threads
</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 {![variant_isset native]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        notes "\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        This version is built based on a base architecture for convenience,\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        which may not be optimized for your system. To build a version\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        customized for your machine, use the +native variant"
</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;'>+    post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # pse2john.py depends on pysap which is python2 only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -W ${destroot}${prefix}/share/john \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -locale C -E -q "1s|^#! ?/usr/bin/(env )?python|#!${prefix}/bin/python${python2_branch}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            pse2john.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${subport} eq "john-jumbo"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace -W ${destroot}${prefix}/share/john \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -locale C -E -q "1s|^#! ?/usr/bin/(env )?python|#!${prefix}/bin/python${python2_branch}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                DPAPImk2john.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                aix2john.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ibmiscanner2john.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                keyring2john.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                kirbi2john.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                pcap2john.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ps_token2john.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${destroot}${prefix}/share/john "chmod +x diskcryptor2john.py"
</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 {${subport} eq "john-jumbo-devel"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${destroot}${prefix}/share/john "chmod +x bestcryptve2john.py coinomi2john.py"
</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;'>+        reinplace -locale C -E -q "1s|^#! ?/usr/bin/(env )?python2|#!${prefix}/bin/python${python2_branch}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            {*}[glob ${destroot}${prefix}/share/john/*.py]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -locale C -E -q "1s|^#! ?/usr/bin/(env )?python3?|#!${prefix}/bin/python${python3_branch}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            {*}[glob ${destroot}${prefix}/share/john/*.py]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -locale C -E -q "1s|^#! ?/usr/bin/(env )?perl|#!${prefix}/bin/perl${perl_version}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            {*}[glob -directory ${destroot}${prefix}/share/john *.pl benchmark-unify relbench]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -locale C -E -q "1s|^#! ?/usr/bin/(env )?ruby|#!${prefix}/bin/ruby${ruby_branch}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            {*}[glob ${destroot}${prefix}/share/john/*.rb]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -d ${destroot}${prefix}/etc/bash_completion.d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        move ${destroot}${prefix}/share/john/john.bash_completion \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${destroot}${prefix}/etc/bash_completion.d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -d ${destroot}${prefix}/share/zsh/site-functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        move ${destroot}${prefix}/share/john/john.zsh_completion \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${destroot}${prefix}/share/zsh/site-functions
</span>     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    build.dir           ${worksrcpath}/src
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    build.target        default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    build.env-append    CC=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        "CFLAGS=${configure.cflags} [get_canonical_archflags cc]" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        "LDFLAGS=${configure.ldflags} [get_canonical_archflags ld]"
</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;'>+    file copy ${worksrcpath}/run ${destroot}${prefix}/share/john
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system "chmod -R a+rX ${destroot}${prefix}/share/john"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system "ln -s ${prefix}/share/john/john ${destroot}${prefix}/bin/john"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d ${destroot}${prefix}/share/doc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    file copy ${worksrcpath}/doc ${destroot}${prefix}/share/doc/john
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system "chmod -R a+rX ${destroot}${prefix}/share/doc/john"
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-notes "You'll find the john files under ${prefix}/share/john/"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+notes-append "You'll find the john files under ${prefix}/share/john/"
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.type      regex
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.regex     /${name}-(\[0-9.\]+)${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} in [list "john" "john-jumbo"]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    livecheck.type              regex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    livecheck.regex             /${name}-(\[0-9.\]+)${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/john/files/patch-apple-m1.diff b/sysutils/john/files/patch-apple-m1.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..697aae240cf
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/john/files/patch-apple-m1.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,137 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/openwall/john/issues/4585
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/arm32le.h src/arm32le.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9a8ff99956..a0c60c0d26 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/arm32le.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/arm32le.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,7 +27,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ARCH_INT_GT_32                    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;'>+-#define ARCH_ALLOWS_UNALIGNED             0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ARCH_ALLOWS_UNALIGNED             __ARM_FEATURE_UNALIGNED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ARCH_INDEX(x)                     ((unsigned int)(unsigned char)(x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define CPU_DETECT                        0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/arm64le.h src/arm64le.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a916cc0538..63b1ed932e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/arm64le.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/arm64le.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,7 +28,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ARCH_INT_GT_32                    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;'>+-#define ARCH_ALLOWS_UNALIGNED             0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ARCH_ALLOWS_UNALIGNED             __ARM_FEATURE_UNALIGNED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ARCH_INDEX(x)                     ((unsigned int)(unsigned char)(x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define CPU_DETECT                        0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/configure src/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6b9a5088c4..796660f8d7 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9321,6 +9321,42 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "no" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  conftest.$ac_objext conftest.beam conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CC="$CC_BACKUP -march=armv8-a+simd"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ASIMD" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for ASIMD... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if test "$cross_compiling" = yes; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++as_fn_error $? "cannot run test program while cross compiling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++See \`config.log' for more details" "$LINENO" 5; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  extern void exit(int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int main(){uint32x4_t t;*((long*)&t)=1;t=veorq_u32(t,t);if((*(unsigned*)&t)==88)printf(".");exit(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;'>++_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ac_fn_c_try_run "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CPU_BEST_FLAGS="-march=armv8-a+simd"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     SIMD_NAME="ASIMD"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "yes" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     ARCH_LINK=arm64le.h
</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;'>++  CPU_NOTFOUND="1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "no" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   conftest.$ac_objext conftest.beam conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9329,6 +9365,7 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NEON" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo_n "checking for NEON... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CC="$CC_BACKUP -mfpu=neon"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9350,6 +9387,34 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "no" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rm -f core conftest.err conftest.$ac_objext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ASIMD" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for ASIMD... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CC="$CC_BACKUP -march=armv8-a+simd"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  extern void exit(int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int main(){uint32x4_t t;*((long*)&t)=1;t=veorq_u32(t,t);if((*(unsigned*)&t)==88)printf(".");exit(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;'>++_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ac_fn_c_try_link "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CPU_BEST_FLAGS="-march=armv8-a+simd"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     SIMD_NAME="ASIMD"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     ARCH_LINK=arm64le.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "yes" >&6; }
</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;'>++  CPU_NOTFOUND="1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "no" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm -f core conftest.err conftest.$ac_objext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/pseudo_intrinsics.h src/pseudo_intrinsics.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5fabbdbb81..450e2477b5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/pseudo_intrinsics.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/pseudo_intrinsics.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -66,10 +66,10 @@ typedef union {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define VLOADU_EMULATED         1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define vor(x, y)               (vtype)vorrq_u32((x).v32, (y).v32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define vorn(x, y)              (vtype)vornq_u32((x).v32, (y).v32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define vroti_epi32(x, i)       (i > 0 ? (vtype)vsliq_n_u32(vshrq_n_u32((x).v32, 32 - (i)), (x).v32, i) : \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                         (vtype)vsriq_n_u32(vshlq_n_u32((x).v32, 32 + (i)), (x).v32, -(i)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define vroti_epi64(x, i)       (i > 0 ? (vtype)vsliq_n_u64(vshrq_n_u64((x).v64, 64 - (i)), (x).v64, i) : \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                         (vtype)vsriq_n_u64(vshlq_n_u64((x).v64, 64 + (i)), (x).v64, -(i)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define vroti_epi32(x, i)       (i > 0 ? (vtype)vsliq_n_u32(vshrq_n_u32((x).v32, 32 - ((i) & 31)), (x).v32, (i) & 31) : \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                 (vtype)vsriq_n_u32(vshlq_n_u32((x).v32, (32 + (i)) & 31), (x).v32, (-(i)) & 31))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define vroti_epi64(x, i)       (i > 0 ? (vtype)vsliq_n_u64(vshrq_n_u64((x).v64, 64 - ((i) & 63)), (x).v64, (i) & 63) : \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                 (vtype)vsriq_n_u64(vshlq_n_u64((x).v64, (64 + (i)) & 63), (x).v64, (-(i)) & 63))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define vroti16_epi32           vroti_epi32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define vset1_epi32(i)          (vtype)vdupq_n_u32(i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define vset1_epi64(i)          (vtype)vdupq_n_u64(i)
</span></pre><pre style='margin:0'>

</pre>