<pre style='margin:0'>
Marius Schamschula (Schamschula) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/ea1f8bd6404c04acff4f9d2876c4272f67fd0abb">https://github.com/macports/macports-ports/commit/ea1f8bd6404c04acff4f9d2876c4272f67fd0abb</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit ea1f8bd6404c04acff4f9d2876c4272f67fd0abb
</span>Author: Marius Schamschula <mschamschula@gmail.com>
AuthorDate: Tue Jun 6 11:35:11 2023 -0500
<span style='display:block; white-space:pre;color:#404040;'> cln: fix build on Ventura arm64
</span>---
math/cln/Portfile | 7 +++
math/cln/files/patch-src-base.diff | 92 ++++++++++++++++++++++++++++++++++++++
2 files changed, 99 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/math/cln/Portfile b/math/cln/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index d529833f76e..b581cccc7f6 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/math/cln/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/math/cln/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -19,6 +19,7 @@ long_description \
</span> use_bzip2 yes
homepage http://www.ginac.de/CLN/
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> master_sites ${homepage}
checksums rmd160 901ed4dc8f5a258beb4646fba8973bc7a0b32b44 \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,8 +28,14 @@ checksums rmd160 901ed4dc8f5a258beb4646fba8973bc7a0b32b44 \
</span>
depends_lib port:gmp
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles patch-src-base.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> compiler.cxx_standard 2011
<span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${build_arch} eq "arm64"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.env-append CPPFLAGS=-DNO_ASM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> test.run yes
test.target check
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/math/cln/files/patch-src-base.diff b/math/cln/files/patch-src-base.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f8bd3f961d9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/math/cln/files/patch-src-base.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,92 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Richard Kreckel <kreckel@ginac.de>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Thu, 4 Nov 2021 10:25:23 +0000 (+0100)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: Fix linking errors on some compilers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+X-Git-Url: https://www.ginac.de/CLN/cln.git//cln.git?p=cln.git;a=commitdiff_plain;h=6edafa136be9f6394fea46a3e2858fe9194974fd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix linking errors on some compilers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Let's be explicit about variables with C language linkage [dcl.link]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 'type x;' declares and defines C++ variable 'x'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 'extern "C" type x;' declares 'x' (with C linkage).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 'extern "C" { type x; }' declares and defines 'x'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The C++ standard allows mixed declarations as long as they denote the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+same entity, but some compilers (e.g. CLang) don't seem to comply.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+It doesn't hurt to be explicit and use extern "C" throughout for the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+affected variables.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Reported by Philip Huffman <philhuffman56@icloud.com>.
</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;'>+diff --git a/src/base/low/cl_low_div.cc b/src/base/low/cl_low_div.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c170087..08a505f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/base/low/cl_low_div.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/base/low/cl_low_div.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,11 +10,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Implementation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef NEED_VAR_divu_16_rest
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uint16 divu_16_rest;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern "C" { uint16 divu_16_rest; }
</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 NEED_FUNCTION_divu_3216_1616_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uint16 divu_16_rest;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern "C" { uint16 divu_16_rest; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace cln {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Most processors have a good 32 by 32 bit division, use that.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -101,11 +101,11 @@ uint32 divu_3232_3232_(uint32 x, uint32 y)
</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 NEED_VAR_divu_32_rest
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uint32 divu_32_rest;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern "C" { uint32 divu_32_rest; }
</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 NEED_FUNCTION_divu_6432_3232_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uint32 divu_32_rest;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern "C" { uint32 divu_32_rest; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace cln {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ uint32 divu_6432_3232_(uint32 xhi, uint32 xlo, uint32 y)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Methode:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -207,7 +207,7 @@ uint32 divu_6432_3232_(uint32 xhi, uint32 xlo, uint32 y)
</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 NEED_VAR_divu_64_rest
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uint64 divu_64_rest;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern "C" { uint64 divu_64_rest; }
</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 NEED_FUNCTION_divu_6464_6464_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/base/low/cl_low_mul.cc b/src/base/low/cl_low_mul.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 75eb3af..ab9205d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/base/low/cl_low_mul.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/base/low/cl_low_mul.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,11 +10,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Implementation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef NEED_VAR_mulu32_high
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uint32 mulu32_high;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern "C" { uint32 mulu32_high; }
</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 NEED_FUNCTION_mulu32_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uint32 mulu32_high;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern "C" { uint32 mulu32_high; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace cln {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ uint32 mulu32_ (uint32 x, uint32 y)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,11 +50,11 @@ uint64 mulu32_w (uint32 arg1, uint32 arg2)
</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;'>+ #ifdef NEED_VAR_mulu64_high
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uint64 mulu64_high;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern "C" { uint64 mulu64_high; }
</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 NEED_FUNCTION_mulu64_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uint64 mulu64_high;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern "C" { uint64 mulu64_high; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace cln {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern "C" uint64 mulu64_ (uint64 x, uint64 y);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ uint64 mulu64_ (uint64 x, uint64 y)
</span></pre><pre style='margin:0'>
</pre>